Skip to content

AtomCode 二进制字符串分析报告

基于 strings 提取的 v4.25.3 ELF 二进制文件分析 2026-06-21


1. CodingPlan 完整子系统

1.1 相关源文件(Rust crate 路径)

源文件功能
crates/atomcode-daemon/src/api_codingplan.rsDaemon 侧的 CodingPlan API 实现
crates/atomcode-core/src/coding_plan/setup.rsSetup 流程实现
crates/atomcode-codingplan-crypto/src/versions/v1.rs加密层实现 (v1)

1.2 CodingPlan API 端点

GET https://api.gitcode.com/api/v5/models-v2?plan_type=<type>
     → 查询指定套餐可用模型

相关结构体:

struct CodingPlanSetupRequest with 1 element

1.3 额度/错误消息

消息含义
CodingPlan setup failed:设置流程失败
CodingPlan already claimed套餐已领取
CodingPlan claimed成功领取
CodingPlan tier setup failed套餐设置失败
(CodingPlan)通用标签
CodingPlan: (status fetch failed)状态查询失败
Failed to write codingplan sync marker:同步标记写入失败

1.4 同步文件

文件字段
codingplan_sync.jsonlast_sync_unix_secs

2. 限流与额度系统完整消息

2.1 窗口限流

消息说明
Current window quota exhausted当前时间窗口额度耗尽
window_quota_exhausted状态字段
window_quota_hint提示信息
rate_limit_windows限流窗口列表
rate_limited被限流标记
stream_interrupted流被中断
stream_timeout流超时
chunks within the configured window. Try resending or check provider status.窗口超限提示

2.2 月度额度

消息说明
Usage: monthly quota exhausted, available again in N days月度配额耗尽
Monthly quota exhausted, available again in N同上

2.3 结构体字段

rate_limit_windows[].window_size_seconds
rate_limit_windows[].window_hours
rate_limit_windows[].call_limit
rate_limit_windows[].calls_used
rate_limit_windows[].usage_percent
rate_limit_windows[].quota_exhausted
rate_limit_windows[].reset_at
rate_limit_windows[].reset_at_display
current_usage:
  window_token_limit
  window_tokens_used
  usage_percent
  window_hours
  reset_at
  seconds_until_reset
  reset_label
  usage_status_desc
  audit_status

3. 环境变量完整清单

3.1 已记录/已知

变量说明
ATOMCODE_TELEMETRY设为 0 或 DO_NOT_TRACK 禁用遥测
ATOMCODE_HOME覆盖 home 目录
ATOMCODE_CODINGPLAN_LLM_BASE_URL覆盖 LLM API 基础地址
ATOMCODE_CODINGPLAN_API_BASE覆盖 CodingPlan API 基础地址
ATOMCODE_GITHUB_MCP_CLIENT_IDGitHub MCP OAuth client ID
ATOMCODE_GIT_PATHGit 可执行文件路径

3.2 新发现的重要变量

变量说明
ATOMCODE_DAEMON_ENABLE_DANGEROUS_TOOLS启用危险工具(生产环境慎用)
ATOMCODE_DISABLE_TOOLS禁用指定工具(逗号分隔)
ATOMCODE_ENABLE_CD启用 cd 命令
ATOMCODE_FIRST_TOKEN_TIMEOUT_SECS首 token 超时(秒)
ATOMCODE_STREAM_TIMEOUT_SECS流超时(秒)
ATOMCODE_WEBUI_DEVWeb UI 开发模式
ATOMCODE_TELEMETRY_ENDPOINT覆盖遥测上报地址
ATOMCODE_PLATFORM_SERVER平台服务器地址(默认 https://acs.atomgit.com
ATOMCODE_UPGRADED_FROM升级来源标记(内部使用)
ATOMCODE_USAGE_DEBUG_PERCENT使用率调试百分比
ATOMCODE_USAGE_DEBUG_THRESHOLD使用率调试阈值
ATOMCODE_SHOW_RAW_API_ERROR显示原始 API 错误(设为 TRUE/NO
ATOMCODE_PLAIN纯文本模式
ATOMCODE_RETAIN保留模式
ATOMCODE_CODINGPLAN_REPORTCodingPlan 使用报告标记(内部使用)
ATOMCODE_INTERNAL_PREPARE_UPGRADE内部升级准备
ATOMCODE_QR_DENSEQR 码密度控制
ATOMCODE_QR_BRAILLEQR 码盲文模式
ATOMCODE_TUIX_LOGTUI 调试日志
ATOMCODE_CJK_WIDTHCJK 字符宽度设置
ATOMCODE_UNICODEUnicode 控制
ATOMCODE_WIRE_DUMP网络流量转储
ATOMCODE_RENDER_DUMP渲染转储
ATOMCODE_GRAPH_TOOLS图形工具设置
ATOMCODE_HOOK_EVENT钩子事件名(运行时)
ATOMCODE_HOOK_CONTEXT钩子上下文(运行时)

4. 遥测系统

4.1 上报 URL

POST https://acs.atomgit.com/api/v1/events

4.2 相关源文件

路径说明
crates/atomcode-telemetry/src/queue/mod.rs遥测队列
crates/atomcode-telemetry/src/runtime.rs运行时
crates/atomcode-telemetry/src/sender/http.rsHTTP 发送
crates/atomcode-telemetry/src/sender/mod.rs发送器
crates/atomcode-cli/src/telemetry_cmd.rsCLI 命令
crates/atomcode-daemon/src/telemetry_scope.rs作用域管理

4.3 数据文件

~/.atomcode/telemetry/queue/       # 事件队列
~/.atomcode/telemetry/health.json  # 健康状态

4.4 命令行控制

atomcode telemetry enable      → 启用遥测
atomcode telemetry disable     → 禁用遥测
atomcode telemetry status      → 显示队列统计
atomcode telemetry pretty      → 打印挂起事件
atomcode telemetry clear       → 清除队列

4.5 上报事件结构

SessionMode:
  - tui
  - ide
  - vscode
  - atomcode_air
  
事件字段:
  device_id
  launch_id
  account_id
  session_id
  turn_id
  schema_version
  app_version
  locale
  provider_host
  repo_origin (gitcode | atomgit | github | gitlab)
  has_git
  
事件类型:
  login_success
  install_completed
  tool_call
  use_command
  mcp_connect
  rate_limited
  stream_interrupted
  stream_timeout
  timeout
  denied_by_user
  blocked_by_hook
  loop_detected
  skill_not_found
  skill_disabled
  skill_empty_template
  
token 统计:
  input_tokens
  output_tokens
  cached_tokens
  had_error
  context_window
  system_tokens
  tool_def_tokens
  tool_result_tokens
  message_tokens

5. Invite 邀请码系统

5.1 文件

~/.atomcode/pending_invite

5.2 字段

json
{
  "invite_code": "...",
  "install_uuid": "...",
  "attempted_at": "...",
  "pending_invite_success": false
}

5.3 错误类型

auth_error       — 认证错误
auth_expired     — 认证过期
network_error    — 网络错误
server_error     — 服务器错误
invalid_args     — 参数无效
not_found        — 未找到

6. 自动更新系统

6.1 源文件引用

crates/atomcode-core/src/self_update.rs

6.2 命令

/upgrade             → 升级到最新版本
/upgrade rollback    → 回滚到上一版本
/upgrade --force     → 强制升级
sudo atomcode upgrade   → 需要权限
brew upgrade atomcode   → Homebrew 方式

6.3 版本来源

https://atomgit.com/atomgit_atomcode/atomcode/releases/download/<version>/<binary>
https://atomgit.com/atomgit_atomcode/atomcode/releases/latest  → 获取最新版本号

6.4 升级策略

自动升级: config.toml 中 auto_update = true
禁用升级: --dev 命令行参数
升级存储: staged/ 目录
升级回滚: /upgrade rollback

7. LLM 提供商完整配置

7.1 内置提供商端点

提供商URL
DeepSeekhttps://api.deepseek.com/v1
OpenAIhttps://api.openai.com/v1
Anthropichttps://api.anthropic.com
Ollama(本地)
示例https://api.example.com/v1

7.2 Provider 配置结构

struct CreateProviderRequest with 16 elements:
  - name, type (openai/claude/ollama), model, base_url, api_key
  - context_window, is_default, max_tokens
  - thinking_enabled, thinking_budget, thinking_type, thinking_keep
  - reasoning_history, reasoning_effort
  - skip_tls_verify, ephemeral

struct PatchProviderRequest with 19 elements
struct PatchThinkingRequest with 6 elements

8. 会话数据模型

8.1 数据结构

struct ChatChunk:
  - type (text/reasoning/tool_start/tool_output/tool_result/tokens/done/error/stopped)
  - content/arguments/id/name/output/success/duration_ms/prompt/completion/total

tool_calls:
  - tool_call_id, image_uri

Live 消息:
  struct LiveMessageReq with 4 elements
  struct LiveProviderReq with 1 element
  struct LivePermissionReq with 2 elements
  struct LiveReasoningEffortReq with 6 elements

9. GitHub OAuth MCP 集成

9.1 OAuth 端点

URL用途
https://github.com/login/oauth/authorizeGitHub OAuth 授权
https://github.com/login/oauth/access_token换取 access token

9.2 MCP OAuth 配置

~/.mcp.json 中的 OAuth 配置:
  oauth.client_id
  oauth.client_secret_env
  oauth.scopes

/.well-known/oauth-authorization-server
/.well-known/oauth-protected-resource

10. MCP 系统

10.1 配置路径

~/.mcp.json              → 项目 MCP 配置
~/.atomcode/mcp.json     → 全局 MCP 配置 (写入方式)
~/global.mcp.json        → 另一全局路径
.mcp.json                → 项目本地配置

10.2 Provider 类型

MCP 服务器支持:
  - stdio (本地命令)
  - HTTP (远程)
  - OAuth 认证的 HTTP

11. 版本信息

属性
最新版本标识v4.25 系列
二进制大小28,447,568 字节
自述"Claude Code 的开源平替"
受众"在你的终端中运行的 AI 编程助手"
文档https://atomcode.atomgit.com/docs/zh/
问题报告https://atomgit.com/atomgit_atomcode/atomcode/issues
技能仓库https://atomgit.com/atomgit_atomcode/atomcode-skills.git
插件仓库https://atomgit.com/atomgit_atomcode/atomcode-plugins-official.git
遥测文档https://atomgit.com/atomgit_atomcode/atomcode/blob/main/docs/telemetry.md

逆向命令索引

bash
# 二进制基本信息
file atomcode.bin.bak
# 输出: ELF 64-bit LSB shared object, x86-64, stripped

# 查看 ELF 段
readelf -S atomcode.bin.bak | grep -E "\.text|\.rodata|\.data|\.bss"

# 统计所有结构体
strings atomcode.bin.bak | grep -oP 'struct \w+ with \d+ element' | wc -l
# 输出: 118

# 动态符号数量
nm -D atomcode.bin.bak | wc -l
# 输出: 2000+

# 提取 Rust 编译器版本
strings atomcode.bin.bak | grep "^/rustc/" | head -1
# 输出: /rustc/e408947bfd200af42db322daf0fadfe7e26d3bd1/library/...

基于 VitePress 构建 · AtomCode v4.25.3 逆向工程分析文档