npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@codelook/codem

v0.10.2

Published

Multi-environment manager for Claude Code CLI - codem (code-multi)

Readme

@codelook/codem

Claude Code CLI 的多环境管理器,具有基于 Ink 的精美界面。

English | 简体中文

codem = code multi - 一个简单易记的名字,用于管理多个 Claude Code 环境

💡 向后兼容claude-multi 命令仍然可用作 codem 的别名

功能特性

  • 🌍 多环境管理:创建和管理隔离的 Claude Code 环境
  • 🔐 API 密钥管理:为每个环境安全存储不同的 API 密钥
  • 🚀 全局环境:跨不同项目共享环境
  • 💰 使用分析:跟踪每个环境的令牌使用量和成本
  • 🎨 精美界面:使用 Ink 和 React 构建的交互式界面
  • 📤 导出/导入:共享环境配置(不包含 API 密钥)
  • 🔄 快速切换:在环境之间快速切换
  • 📊 成本跟踪:通过详细分析监控 API 使用成本
  • 快速启动:直接运行 codem run <env> 启动指定环境(v0.2.2+)
  • 🚀 即时选择:运行 codem 后直接选择环境运行(v0.2.2+)
  • 🌐 代理支持:为每个环境配置独立的 HTTP/HTTPS 代理(v0.3.0+)
  • 🔐 代理认证:支持带有 Bearer Token 认证的代理服务器(v0.3.1+)
  • 🔄 代理池管理:管理多个代理服务器,支持健康检查和快速切换(v0.4.0+)
  • 🚀 远程环境共享:通过代理服务器共享环境,支持团队协作(v0.5.8+)
  • 🎫 一次性 Token:生成临时访问令牌,安全分享环境(v0.5.8+)
  • 🔄 Claude 会话支持:支持继续对话(-c)和恢复会话(-r)功能(v0.9.16+)
  • 📝 Task 命令:直接执行 Claude 任务命令(v0.9.16+)

安装

# 全局安装
npm install -g @codelook/codem@latest

# 或直接使用 npx
npx @codelook/codem

快速开始

交互模式(v0.2.2+ 增强)

只需运行 codem 即可启动交互式界面:

codem  # 直接显示环境列表,可快速选择运行

新功能

  • 启动后直接显示环境列表,可立即选择环境运行 Claude
  • 支持返回主菜单进行其他操作
  • 修复了列表显示后自动退出的问题

命令行模式

# 列出所有环境
codem list

# 创建新环境
codem create work --api-key sk-ant-xxx

# 创建环境并配置代理(v0.3.0+ 新功能)
codem create china --proxy http://proxy.example.com:8080

# 使用代理池中的代理创建环境(v0.4.0+ 新功能)
codem create work --use-proxy us-proxy

# 从当前 Claude Code 实例创建环境(v0.4.1+ 新功能)
codem create dev --from-current

# 管理代理池(v0.4.0+ 新功能)
codem proxy add us-proxy http://us.proxy.com:8080 --auth "pst_token" --description "美国区域"
codem proxy list                    # 列出所有代理及健康状态
codem proxy test                    # 测试所有代理
codem proxy use asia-proxy          # 设置默认代理
codem proxy remove old-proxy        # 从池中删除代理

# 全局代理控制(v0.4.0+ 新功能)
codem proxy global enable           # 启用全局代理
codem proxy global disable          # 禁用全局代理

# 传统代理命令(仍然支持)
codem proxy set work http://proxy.example.com:8080
codem proxy show work
codem proxy remove work

# 切换默认环境
codem use work

# 在特定环境中运行 Claude
codem run work -- chat "你好"

# 直接运行环境(v0.2.2+ 新功能)
codem run work  # 直接在 work 环境中启动 Claude,无需额外参数

# 继续最近的对话(v0.9.16+ 新功能)
codem -c                    # 使用默认环境继续最近对话
codem run work -c           # 在 work 环境中继续最近对话

# 恢复特定会话(v0.9.16+ 新功能)
codem -r <session-id>       # 使用默认环境恢复特定会话
codem run work -r <id>      # 在 work 环境中恢复特定会话

# 执行任务(v0.9.16+ 新功能)
codem task "编写一个Python脚本"  # 使用默认环境执行任务

# 查看使用量和成本
codem usage               # 所有环境
codem usage work          # 特定环境
codem usage -d            # 每日明细
codem usage -b            # 模型明细
codem usage --since 2024-01-01  # 日期范围

使用分析

Codem 通过分析 Claude Code 的对话日志自动跟踪每个环境的令牌使用量和成本。

功能

  • 按环境跟踪:查看按环境隔离的使用情况
  • 成本计算:基于当前 Claude API 定价自动计算成本
  • 模型细分:查看不同 Claude 模型(Opus、Sonnet、Haiku)的使用情况
  • 时间过滤:按日期范围过滤使用情况
  • 会话分析:查看单个对话会话

使用方法

# 交互模式 - 从菜单中选择"查看使用量和成本"
codem

# 命令行模式
codem usage                     # 显示所有环境
codem usage work                # 显示特定环境
codem usage -d                  # 每日细分
codem usage -m                  # 每月汇总
codem usage -b                  # 模型细分
codem usage --since 2024-01-01  # 从特定日期开始
codem usage --until 2024-12-31  # 到特定日期结束

输出示例

环境使用情况:work
总成本:$2.45
会话数:23
令牌数:145.2K 输入,89.3K 输出
缓存:12.5K 令牌

模型细分:
  claude-opus-4-20250514:
    成本:$2.10
    消息:18
    令牌:120.5K/75.2K

  claude-3-5-sonnet-20241022:
    成本:$0.35
    消息:5
    令牌:24.7K/14.1K

最近会话:
  2024-01-15 • 45分钟 • 12条消息 • $0.85
  2024-01-14 • 23分钟 • 8条消息 • $0.42

环境共享

全局环境

全局环境在机器上的所有项目之间共享:

# 创建全局环境
codem create shared-work --global

# 全局环境会出现在所有项目中
cd ~/any-project
codem list  # 将显示 'shared-work [全局]'

导出/导入

与团队成员共享环境配置:

# 导出环境(不包含 API 密钥)
codem export work > work-env.json

# 在另一台机器上导入
codem import work < work-env.json

配置

环境存储位置

  • 本地环境~/.claude-profiles/<name>/
  • 全局环境~/.codem/environments/<name>/
  • 配置文件~/.claude-profiles/config.json

API 密钥安全

API 密钥存储在每个环境的 .claude/settings.json 文件中,并且永远不会包含在导出中。

代理配置

Codem v0.3.0+ 支持为每个环境配置独立的 HTTP/HTTPS 代理,v0.4.0+ 引入代理池管理功能,提供更好的可靠性和灵活性。

代理池管理(v0.4.0+)

管理多个代理服务器,支持健康检查和快速切换:

# 添加代理到池中
codem proxy add us-proxy http://us.proxy.com:8080 --auth "pst_us_token" --description "美国区域"
codem proxy add asia-proxy http://asia.proxy.com:8080 --auth "pst_asia_token" --description "亚洲区域"
codem proxy add eu-proxy http://eu.proxy.com:8080 --auth "pst_eu_token" --description "欧洲区域"

# 列出所有代理及健康状态
codem proxy list
# 输出:
# 代理池:
#   ✅ us-proxy (默认) [已认证] - 美国区域
#      http://us.proxy.com:8080 (2分钟前检查)
#   ❌ asia-proxy [已认证] - 亚洲区域
#      http://asia.proxy.com:8080 (5分钟前检查)
#   ❓ eu-proxy [已认证] - 欧洲区域
#      http://eu.proxy.com:8080

# 测试代理连接
codem proxy test              # 测试所有代理
codem proxy test us-proxy    # 测试特定代理

# 切换默认代理
codem proxy use asia-proxy

# 从池中删除代理
codem proxy remove old-proxy

# 全局代理控制
codem proxy global enable    # 启用全局代理(使用默认代理)
codem proxy global disable   # 禁用全局代理
codem proxy global status    # 查看全局代理状态

创建环境时配置代理

# 使用代理池中的代理(v0.4.0+)
codem create work --use-proxy us-proxy

# 直接配置代理
codem create china --proxy http://proxy.example.com:8080

# 分别设置不同的代理
codem create corp --http-proxy http://proxy.company.com:8080 --https-proxy https://secure-proxy.company.com:8443

# 设置代理和不代理列表
codem create dev --proxy http://localhost:7890 --no-proxy localhost,127.0.0.1,*.local

# 设置带认证的代理(v0.3.1+)
codem create secure --proxy http://proxy.example.com:8080 --proxy-auth "pst_your_token_here"

管理现有环境的代理

# 设置代理(传统方式,仍然支持)
codem proxy set work http://proxy.example.com:8080

# 设置带认证的代理
codem proxy set work http://proxy.example.com:8080 --auth "pst_your_token_here"

# 设置不同类型的代理
codem proxy set work --http http://proxy.example.com:8080 --https https://proxy.example.com:8443

# 查看代理设置
codem proxy show work

# 移除代理设置
codem proxy remove work

代理优先级

当运行 Claude 时,代理配置按以下优先级生效:

  1. 环境使用的代理池代理:如果环境使用 --use-proxy 配置
  2. 环境特定的直接代理:在环境中直接设置的代理
  3. 全局代理池代理:如果启用了全局代理
  4. 系统环境变量HTTP_PROXYHTTPS_PROXYNO_PROXY

使用场景

  1. 代理故障切换:配置多个代理,当一个失败时快速切换
  2. 区域优化:为不同地区使用不同的代理
  3. 企业网络:管理多个企业代理服务器
  4. 开发调试:使用本地代理工具(如 Charles、Fiddler)调试 API 请求

交互式代理管理

通过交互式界面访问代理管理:

codem
# 从主菜单选择"🌐 代理管理"

在代理管理界面中,您可以:

  • 添加带认证的新代理
  • 查看所有代理及健康状态
  • 测试代理连接
  • 设置默认代理
  • 删除代理
  • 控制全局代理设置

远程环境共享(v0.5.8+)

Codem 支持通过 codem-proxy 代理服务器实现环境的远程共享,方便团队协作和临时访问。

部署代理服务器

首先需要部署 codem-proxy 代理服务器。推荐使用 Cloudflare Workers:

# 克隆项目(如果还没有)
git clone https://github.com/your-org/codelook.git
cd codelook/packages/codem-proxy/cloudflare

# 配置你的代理服务器
# 编辑 wrangler.toml,设置你的账户 ID
# 编辑 worker.js,设置你的认证 token

# 部署到 Cloudflare Workers
npm install -g wrangler
wrangler deploy --env production

# 部署成功后会得到类似这样的 URL:
# https://your-proxy.workers.dev

远程环境共享使用指南

1. 通过交互式菜单使用(推荐)

# 启动 codem
codem

# 从主菜单选择 "🔄 远程环境与共享"
# 这会进入统一的远程共享管理界面

在远程共享管理界面,你可以:

  • 🔗 连接到代理服务器:输入代理 URL 和认证 token
  • 📋 查看远程环境列表:查看代理服务器上的所有环境
  • ⬇️ 拉取远程环境:下载远程环境到本地
  • ⬆️ 推送本地环境:上传本地环境到代理服务器
  • 🔄 同步环境:双向同步本地和远程环境
  • 📤 快捷复制共享命令:生成分享命令供他人使用
  • 🎫 生成一次性 Token:创建临时访问令牌(需要代理服务器支持)
  • 👁️ 查看已共享的环境:查看所有已上传的环境

2. 使用一次性 Token 快速访问

一次性 Token(OTT)是最安全便捷的共享方式:

# 直接使用一次性 token 运行远程环境
npx @codelook/codem run https://your-proxy.workers.dev --token ott_xxxxx

# 添加 --no-cache 避免缓存到本地
npx @codelook/codem run https://your-proxy.workers.dev --token ott_xxxxx --no-cache

一次性 Token 的特点

  • ott_ 前缀开头
  • 使用一次后自动失效
  • 无需提供环境 ID
  • 更加安全,适合临时分享

3. 使用永久共享命令

对于长期团队协作,可以使用永久共享:

# 使用环境 ID 和认证 token
npx @codelook/codem run https://your-proxy.workers.dev \
  --auth "YOUR_AUTH_TOKEN" \
  --env "env_xxxxx"

4. 命令行操作(开发中)

# 连接到远程代理
codem remote connect https://your-proxy.workers.dev YOUR_TOKEN

# 列出远程环境
codem remote list

# 推送本地环境
codem remote push myenv

# 拉取远程环境
codem remote pull env_xxxxx local-name

# 同步环境
codem remote sync myenv --direction pull  # 从远程拉取
codem remote sync myenv --direction push  # 推送到远程

# 断开连接
codem remote disconnect

安全最佳实践

  1. 保护你的代理服务器信息

    • 永远不要在公开代码中硬编码代理 URL 和 token
    • 使用环境变量或配置文件存储敏感信息
    • 定期轮换认证 token
  2. 使用一次性 Token

    • 临时分享时优先使用一次性 token
    • 避免分享永久 token 给不信任的用户
    • 一次性 token 使用后立即失效,更加安全
  3. 权限控制

    • 为不同团队部署不同的代理服务器
    • 使用不同的认证 token 区分访问权限
    • 定期审查和清理不再使用的环境

使用场景

  1. 团队协作

    # 团队成员 A 推送环境
    codem remote push team-project
    
    # 团队成员 B 拉取使用
    codem remote pull env_team-project my-local-copy
  2. 临时技术支持

    # 生成一次性分享命令
    # 在交互式菜单中选择 "📤 快捷复制共享命令"
    # 发送给需要帮助的人
  3. 跨设备同步

    # 在办公室电脑推送
    codem remote push my-work
    
    # 在家里电脑拉取
    codem remote pull env_my-work home-work

故障排除

问题:远程功能显示"正在开发中"

  • 当前版本的远程功能仍在完善中
  • 可以使用 run 命令的 --token 参数作为替代方案

问题:无法连接到代理服务器

  • 检查代理服务器 URL 是否正确
  • 验证认证 token 是否有效
  • 确保网络连接正常

问题:一次性 Token 无效

  • 确认 token 以 ott_ 开头
  • 检查是否已经使用过(一次性 token 只能使用一次)
  • 验证代理服务器是否支持一次性 token 功能

高级用法

编程接口

import { EnvironmentManager } from '@codelook/codem';

const manager = new EnvironmentManager();
await manager.initialize();

// 创建环境
await manager.createEnvironment({
  name: 'dev',
  apiKey: 'sk-ant-xxx',
  description: '开发环境',
  global: false,
});

// 列出环境
const environments = await manager.listEnvironments();

// 使用环境运行
await manager.runWithEnvironment('dev', ['chat', '你好']);

与项目集成

在项目的 package.json 中添加:

{
  "scripts": {
    "claude": "codem run dev --",
    "claude:prod": "codem run prod --"
  }
}

然后使用:

npm run claude chat "帮我处理这段代码"

常见问题

如何迁移现有的 Claude 配置?

如果你已经在使用 Claude Code CLI,codem 会自动检测并兼容现有配置:

# 创建基于现有配置的环境
codem create default --from-existing

如何在 CI/CD 中使用?

# 通过环境变量设置 API 密钥
export ANTHROPIC_API_KEY=sk-ant-xxx
codem create ci --api-key $ANTHROPIC_API_KEY
codem run ci -- chat "运行测试"

如何备份所有环境?

# 导出所有环境
for env in $(codem list --json | jq -r '.[].name'); do
  codem export $env > backup-$env.json
done

故障排除

环境未显示

确保你在正确的目录中,或者使用 --global 标志查看全局环境:

codem list --global

API 密钥未保存

确保你有写入权限到配置目录:

# 检查权限
ls -la ~/.claude-profiles/

成本计算不准确

成本基于 Claude API 的标准定价计算。如果你有特殊定价,可以通过环境变量自定义:

export CLAUDE_OPUS_INPUT_PRICE=0.015
export CLAUDE_OPUS_OUTPUT_PRICE=0.075

最新更新

v0.5.11 (2025-06-30)

  • 🔄 统一菜单:合并"远程环境共享"和"共享管理"为一个统一的"远程环境与共享"菜单
  • 🐛 错误修复:修复了调用不存在方法的运行时错误
  • 🔒 安全改进:移除了所有硬编码的私有环境配置,保护用户隐私

v0.5.8 (2025-06-30)

  • 🎫 一次性 Token 共享:支持使用 ott_ 前缀的一次性 token,更安全便捷
  • 🔄 环境共享管理:新增专门的共享管理界面,快捷复制分享命令
  • 🚀 远程环境支持:通过代理服务器实现环境的远程共享和同步
  • 📤 快速共享:一键生成分享命令,方便团队协作

v0.4.1 (2025-06)

  • 🔄 代理池管理:管理多个代理服务器,支持健康检查和快速切换
  • 🏥 代理健康检查:自动测试所有代理的连接性,提供可视化状态指示
  • 🌐 全局代理控制:使用 proxy global enable/disable/status 命令一键控制全局代理
  • 增强的代理命令:新增 proxy add/list/use/test/remove 子命令进行全面的代理管理
  • 🎯 智能默认选择:添加到空池中的第一个代理自动成为默认代理
  • 🔧 环境集成:创建环境时使用 --use-proxy 参数引用池中代理
  • 📊 交互式代理界面:主界面新增"🌐 代理管理"菜单选项
  • 🔀 导入当前配置:新增 --from-current 选项,可从当前 Claude Code 实例创建环境

v0.4.0 (2025-01)

  • 🎯 环境模板:为个人、团队、区域和企业使用提供预配置模板
  • 🧾 健康检查:新增 codem health 命令验证环境配置
  • 🛡️ 增强错误处理:提供有用的错误信息和恢复建议
  • 🎆 交互式设置向导:为新环境提供引导式设置

v0.3.0 (2025-06)

  • 🌐 新增代理支持:为每个环境配置独立的 HTTP/HTTPS 代理
  • ✨ 新增 proxy 命令:管理环境的代理设置(set/show/remove)
  • 🔧 支持在创建环境时直接配置代理
  • 📝 完善代理配置文档和使用示例

v0.2.3 (2024-12)

  • 🐛 修复了交互式选择环境运行 Claude 时的报错问题
  • 🔧 改进了 Ink 界面的卸载机制,避免与 Claude 交互冲突

v0.2.2 (2024-12)

  • ✨ 支持 codem run <env> 直接运行环境,无需额外参数
  • 🎯 改进主界面:运行 codem 后直接显示环境列表供快速选择
  • 🐛 修复了列表显示后自动退出的问题
  • ✅ 实现了所有主菜单功能(运行、切换、删除、导出等)

v0.2.1 (2024-12)

  • 🐛 修复了 CLI 启动时的 shebang 错误
  • 📝 添加了完整的中文文档

贡献

欢迎贡献!在提交 PR 之前,请阅读我们的贡献指南。

许可证

MIT © CodeBox 团队


English | 简体中文