标签 CLI 下的文章

突发奇想,因为平时都是 claude code, codex, gemini 混着一起用,改不同的模块,就在想能不能统计各种 AI Cli 工具在项目里“真正写进代码库”的贡献量。大概调研了一下发现确实可以,所以实现了一个版本,执行下面的命令可以直接扫描代码库

npx ai-credit

工作原理是扫描各类 AI 工具的本地会话日志,提取实际产生的 file diff ,然后和当前工作区逐行匹配,输出每个工具/模型的新增、删除行数和文件列表。所有操作全部在本地,不会做任何上传,代码开源。

官网: https://ai-credits.vercel.app

repo: https://github.com/debugtheworldbot/ai-credit

欢迎试用、提建议、补充更多 cli 🙌

最近在搞一个大项目喵 不过 目前我缺失一个高效的工作流喵
所以 就整了这么一个抽象小项目喵


主要功能

  • 通过 node.js 的 api 实现多 agent 并行化工作
  • 全局知识库 & skills 共享且可自学习
  • 可以把和 ai 讨论的成果变成 specs 并 link 到知识库


实现原理

  • 通过创建 claude.md 引导 claude 的工作流 使得其自动使用配置的 skills&kb
  • 维护 ~/.ckb&./.asyncwf 以实现 skills&kb 共享及项目内的 tasks 管理
  • 提供一个对人类和 ai 都方便的 cli interface 以管理并行工作流


安装方式

npm install -g asyncwf

使用时只需 asyncwf init 即可


仓库地址


#Npm.js


📌 转载信息
原作者:
rand0mdevel0per
转载时间:
2026/1/18 08:49:15

脚本是 AI 搓的,没看具体内容。
每天上班第一件事就是先运行一下脚本
运行结果:

脚本如下:

// update_ai_tools.js const { execSync } = require('child_process');
const os = require('os');

console.log('\n======================================');
console.log('       AI CLI 工具更新助手');
console.log('======================================\n');

// 1. 权限检查 function isRunningAsAdmin() {
  if (os.platform() === 'win32') {
    try {
      execSync('net session', { stdio: 'ignore' });
      return true;
    } catch (e) {
      return false;
    }
  }
  return process.geteuid && process.geteuid() === 0;
}

if (!isRunningAsAdmin()) {
  console.error('❌ 请以管理员身份运行此脚本。\n');
  process.stdin.once('data', () => process.exit());
  return;
}

const packages = [
  { name: 'Gemini CLI', npm: '@google/gemini-cli' },
  { name: 'GitHub Copilot', npm: '@github/copilot' },
  { name: 'Codex CLI', npm: '@openai/codex' },
  { name: 'Claude Code', npm: '@anthropic-ai/claude-code' },
  { name: 'Qwen Code', npm: '@qwen-code/qwen-code' }
];

// 2. 获取本地版本 (这一步很快) let localVersions = {};
try {
  const res = execSync('npm list -g --depth=0 --json', { 
    encoding: 'utf8', 
    stdio: ['ignore', 'pipe', 'ignore'] 
  });
  const parsed = JSON.parse(res);
  if (parsed.dependencies) {
    for (const key in parsed.dependencies) {
      localVersions[key] = parsed.dependencies[key].version;
    }
  }
} catch (e) {
  if (e.stdout) {
    try {
      const parsed = JSON.parse(e.stdout);
      if (parsed.dependencies) Object.assign(localVersions, parsed.dependencies);
    } catch (err) {}
  }
}

// 3. 核心逻辑:逐个检查并立即打印结果 console.log('正在检查版本状态...\n');
const tasks = [];

packages.forEach(pkg => {
  const localVer = localVersions[pkg.npm];
  let remoteVer = null;

  try {
    // 联网查询,可能会慢
    remoteVer = execSync(`npm view ${pkg.npm} version`, { encoding: 'utf8' }).trim();
  } catch (e) {
    console.log(`⚠️  [${pkg.name}] 查询失败,跳过。`);
    return; // 跳过当前循环
  }

  // 立即打印结果,提供实时反馈 if (!localVer) {
    console.log(`⚪ [${pkg.name}] 未安装 -> 🆕 ${remoteVer}`);
    tasks.push({ ...pkg, action: 'install' });
  } else if (localVer !== remoteVer) {
    console.log(`🔻 [${pkg.name}] 本地 ${localVer} -> 🆙 ${remoteVer}`);
    tasks.push({ ...pkg, action: 'update' });
  } else {
    console.log(`✅ [${pkg.name}] ${localVer} (已是最新)`);
  }
});

// 4. 执行更新 if (tasks.length === 0) {
  console.log('\n✨ 所有工具已是最新。');
} else {
  console.log();
  console.log(`🚀 开始更新 ${tasks.length} 个工具...`);
  console.log();

  tasks.forEach((task, index) => {
    process.stdout.write(`[${index + 1}/${tasks.length}] 更新 ${task.name}... `);
    try {
      execSync(`npm install -g ${task.npm}@latest`, { stdio: 'pipe' });
      console.log(`✔ 成功`);
    } catch (e) {
      console.log(`✖ 失败`);
      if (e.stderr) console.error('    ' + e.stderr.toString().split('\n')[0]); 
    }
  });
  
  console.log('\n✨ 全部完成。');
}

console.log('\n(按任意键退出)');
process.stdin.setRawMode(true);
process.stdin.resume();
process.stdin.on('data', () => process.exit());

📌 转载信息
原作者:
Thousand_Star
转载时间:
2026/1/9 18:19:14

一个轻量的 CLI,用于在 Claude Code 与 Codex 的环境变量之间快速切换。功能比较简单,适合轻度使用。

快速开始

  1. 安装:
npm install -g @praeviso/code-env-switch
  1. 交互式添加 profile(若不存在会创建 ~/.config/code-env/config.json):
codenv add
# 再执行一次,用来添加另一种 type
codenv add

交互示例:

$ codenv add
Select type (1=codex, 2=claude): 1
Profile name (default: default): primary
Base URL (required): https://api.example.com/v1
API key (required): YOUR_API_KEY
  1. 按 type 设置默认项:
codenv default codex primary
codenv default claude default
  1. 启用自动应用:
codenv init
新开终端(或执行 `source ~/.bashrc` / `source ~/.zshrc`)即可自动应用默认配置。
  1. 交互式选择:
codenv use 或者 codenv use claude mirror

不会永久污染环境变量,原理是每次 bash 启动的时候自动执行脚本 export 对应的环境变量。

测试下来,切换 claude 的时候会显示上一个 proflie 的 api key,但是实际上是已经切换过来了,可以用 status 查看。

此外不知道是否会和原有的 cc/codex 的 config 文件里面的 apikey 冲突,我还没有测试。


📌 转载信息
转载时间:
2026/1/6 11:57:35