配置参考#
Unified ICC 完全通过环境变量配置(支持 .env 文件)。核心库中无需任何平台令牌或 API 密钥。
配置加载顺序#
配置按以下顺序加载(后者覆盖前者):
默认值
~/.unified-icc/.env文件./.env文件(当前工作目录)环境变量
环境变量#
核心设置#
变量 |
默认值 |
说明 |
|---|---|---|
|
|
配置目录 |
|
|
默认 AI 助手 Provider |
Tmux 设置#
变量 |
默认值 |
说明 |
|---|---|---|
|
|
tmux 会话名称 |
|
(空) |
外部窗口发现模式 |
监控设置#
变量 |
默认值 |
说明 |
|---|---|---|
|
|
轮询间隔(秒,最小 0.5) |
|
|
状态轮询间隔(秒) |
助手设置#
变量 |
默认值 |
说明 |
|---|---|---|
|
|
Claude 配置目录 |
|
|
完成后自动关闭(分钟) |
|
|
死亡会话自动关闭(分钟) |
Provider 命令覆盖#
覆盖各 Provider 的启动命令:
变量 |
格式 |
|---|---|
|
覆盖 |
|
覆盖 |
|
覆盖 |
|
覆盖 |
|
覆盖 |
示例 .env 文件#
# 核心设置
UNIFIED_ICC_DIR=~/.unified-icc
CCLARK_PROVIDER=claude
# Tmux
TMUX_SESSION_NAME=cclark
# 监控
MONITOR_POLL_INTERVAL=1.0
# Provider 覆盖
CCLARK_CLAUDE_COMMAND=/usr/local/bin/claude
GatewayConfig 类#
from unified_icc import GatewayConfig, config
# 访问全局配置
print(config.tmux_session_name) # "cclark"
print(config.provider_name) # "claude"
# 或创建自定义配置
custom_config = GatewayConfig()
custom_config.tmux_session_name = "my-session"
GatewayConfig 属性#
属性 |
类型 |
说明 |
|---|---|---|
|
|
配置目录 |
|
|
tmux 会话名称 |
|
|
主窗口名称 |
|
|
本网关所在窗口 ID |
|
|
外部窗口发现模式 |
|
|
主状态文件路径 |
|
|
会话映射文件路径 |
|
|
监控状态文件路径 |
|
|
钩子事件文件路径 |
|
|
邮箱目录路径 |
|
|
Claude 配置目录 |
|
|
Claude 项目路径 |
|
|
轮询间隔 |
|
|
状态轮询间隔 |
|
|
默认 Provider |
|
|
完成状态自动关闭延迟 |
|
|
死亡状态自动关闭延迟 |
状态文件#
所有状态文件存储在 ~/.unified-icc/:
文件 |
说明 |
|---|---|
|
网关状态(频道、窗口、显示名称) |
|
tmux 窗口 ↔ AI 助手会话映射 |
|
轮询偏移量和追踪中的会话 |
|
钩子事件日志(追加写入) |
状态文件格式:state.json#
{
"channel_bindings": {
"feishu:chat123:thread456": "@1"
},
"channel_meta": {
"feishu:chat123:thread456": {
"user_id": "U123456"
}
},
"display_names": {
"@1": "Claude Code"
}
}
状态文件格式:session_map.json#
{
"cclark:@1": {
"session_id": "abc123",
"transcript_path": "/home/user/.claude/projects/myproj/.claude/history/session_abc123.jsonl",
"cwd": "/home/user/projects/myproj",
"window_name": "claude",
"provider_name": "claude"
}
}
自定义配置示例#
from unified_icc import UnifiedICC, GatewayConfig
import os
# 方式 1:环境变量
os.environ["TMUX_SESSION_NAME"] = "my-session"
os.environ["MONITOR_POLL_INTERVAL"] = "0.5"
gateway = UnifiedICC()
# 方式 2:自定义配置对象
config = GatewayConfig()
config.tmux_session_name = "my-session"
config.monitor_poll_interval = 0.5
config.state_file = Path("/tmp/my-state.json")
gateway = UnifiedICC(gateway_config=config)
tmux 要求#
Unified ICC 要求:
tmux 2.6 或更高版本
能够创建新会话/窗口
可访问
tmux命令
tmux Socket#
默认 unified-icc 使用默认 tmux socket。使用自定义 socket:
export TMUX_SOCKET_PATH=/tmp/my-tmux-socket
窗口命名#
窗口自动命名。自定义显示名称:
# 在前端中设置显示名称
from unified_icc import channel_router
channel_router.set_display_name(window_id, "我的项目")
Provider 特定配置#
Claude#
Claude Code 如果 claude 在 PATH 中则自动检测。指定特定版本:
export CCLARK_CLAUDE_COMMAND=/path/to/claude
Codex#
export CCLARK_CODEX_COMMAND=/path/to/codex
Gemini#
export CCLARK_GEMINI_COMMAND=/path/to/gemini