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 🙏

© 2026 – Pkg Stats / Ryan Hefner

squadron-cli

v0.4.2

Published

AI coding agent CLI with multi-agent support - Claude Code alternative powered by GitHub Copilot, Anthropic, OpenAI, and Ollama

Readme

Squadron CLI

License: MIT Node.js

English | 中文

支持多 Agent 和多 Provider 的 AI 编程助手 CLI 工具。

特性

  • 多 Provider 支持 - GitHub Copilot、Anthropic Claude、OpenAI、Ollama (本地 LLM)
  • 交互式聊天 - 类似 Claude Code 的界面,支持流式响应
  • 多 Agent 并行 - 同时运行多个 Agent,实时显示输出
  • 子 Agent 支持 - 主 Agent 可以派生子任务
  • MCP 协议 - 通过 Model Context Protocol 扩展外部工具
  • LSP 集成 - 代码智能 (悬停提示、跳转定义、查找引用)
  • 文件操作 - 读取、写入、编辑文件,支持语法高亮
  • 代码搜索 - 基于 ripgrep 的快速搜索 (比 grep 快 10 倍)
  • Git 集成 - 完整的 Git 工作流支持
  • YAML 配置 - 项目级和全局配置

安装

# 全局安装
npm install -g squadron-cli

# 或使用 npx 无需安装
npx squadron-cli

要求: Node.js >= 18

快速开始

# 1. 登录 GitHub Copilot
squadron login

# 2. 启动交互式聊天
squadron

# 3. 或运行单个任务
squadron run "解释这个代码库"

Provider 支持

Squadron 支持多种 LLM Provider:

| Provider | 模型 | 设置方式 | |----------|------|----------| | GitHub Copilot | GPT-4o, Claude Sonnet 4, o1 等 | squadron login | | Anthropic | Claude 3.5/4 Sonnet, Opus, Haiku | 设置 ANTHROPIC_API_KEY | | OpenAI | GPT-4, GPT-4o, o1 等 | 设置 OPENAI_API_KEY | | Ollama | Llama 3, Mistral, CodeLlama 等 | 本地安装 Ollama |

使用不同的 Provider

# GitHub Copilot (默认)
squadron chat -m claude-sonnet-4

# 直接使用 Anthropic API
export ANTHROPIC_API_KEY=sk-ant-...
squadron chat -m anthropic:claude-sonnet-4-20250514

# Ollama (本地)
ollama pull llama3.2
squadron chat -m ollama:llama3.2

# OpenAI 兼容 API
export OPENAI_API_KEY=sk-...
export OPENAI_BASE_URL=https://api.openai.com
squadron chat -m openai:gpt-4o

配置

Squadron 使用 YAML 配置文件。配置按以下优先级合并:

  1. 项目配置: 当前目录下的 .squadron.yml
  2. 全局配置: ~/.config/squadron-cli/config.yml

快速设置

# 创建项目配置
squadron config init

# 编辑全局配置
squadron config edit

配置文件

在项目根目录创建 .squadron.yml

# Provider 设置
provider:
  type: copilot          # copilot | anthropic | openai | ollama
  model: claude-sonnet-4

# 或使用 Ollama 本地 LLM
# provider:
#   type: ollama
#   model: llama3.2
#   baseURL: http://localhost:11434

# 默认 AI 模型
model: claude-sonnet-4

# AI 人格 (风格)
persona: claude-code    # default | claude-code | cursor-agent | windsurf | cline | devin | minimal | teacher

# 自定义指令 (添加到系统提示)
instructions: |
  你是一位资深 TypeScript 开发者。
  始终使用严格的 TypeScript 类型。
  遵循项目现有的代码风格。

# 工具权限级别: ask | allow | deny
permissions:
  # 安全工具 (默认: allow)
  read_file: allow
  glob: allow
  grep: allow
  git_status: allow
  git_log: allow
  git_diff: allow

  # 写入工具 (默认: ask)
  write_file: ask
  edit_file: ask

  # 执行工具 (默认: ask)
  bash: ask
  run_tests: ask

  # 推送工具 (默认: ask)
  git_commit: ask
  git_push: ask
  git_pull: ask

# YOLO 模式: 跳过所有确认 (谨慎使用!)
yolo: false

# 始终包含的上下文路径
contextPaths:
  - README.md
  - docs/architecture.md
  - src/types.ts

# 提交信息署名风格
attribution:
  style: co-authored-by  # co-authored-by | assisted-by | none

# MCP (Model Context Protocol) 服务器
mcp:
  # 文件系统访问
  filesystem:
    type: stdio
    command: npx
    args: ["-y", "@anthropic-ai/mcp-server-filesystem", "/path/to/allowed/dir"]

  # GitHub 集成
  github:
    type: stdio
    command: npx
    args: ["-y", "@anthropic-ai/mcp-server-github"]
    env:
      GITHUB_TOKEN: ${GITHUB_TOKEN}

  # HTTP 类型的 MCP 服务器
  custom-api:
    type: http
    url: http://localhost:3000/mcp
    headers:
      Authorization: Bearer ${API_TOKEN}

  # 临时禁用某个服务器
  disabled-server:
    type: stdio
    command: some-command
    disabled: true

# LSP (Language Server Protocol) 服务器,用于代码智能
lsp:
  typescript:
    command: typescript-language-server
    args: ["--stdio"]

  python:
    command: pylsp

  go:
    command: gopls

  rust:
    command: rust-analyzer

# 自定义忽略规则 (在 .gitignore 基础上)
ignore:
  - "*.log"
  - "tmp/"
  - "coverage/"

环境变量

配置值可以引用环境变量:

mcp:
  github:
    env:
      GITHUB_TOKEN: ${GITHUB_TOKEN}      # 必需
      API_URL: ${API_URL:-default}       # 带默认值

支持的环境变量:

| 变量 | 说明 | |------|------| | ANTHROPIC_API_KEY | Anthropic API 密钥 | | OPENAI_API_KEY | OpenAI API 密钥 | | OPENAI_BASE_URL | OpenAI 兼容 API 地址 | | OLLAMA_BASE_URL | Ollama 服务器地址 (默认: http://localhost:11434) | | LLM_PROVIDER | 强制使用指定 Provider: copilot, anthropic, openai, ollama | | GITHUB_TOKEN | GitHub Token (MCP GitHub 服务器使用) |

命令

| 命令 | 说明 | |------|------| | squadron | 启动交互式聊天 (默认) | | squadron chat | 启动交互式聊天会话 | | squadron run <task> | 运行单个任务 (非交互式) | | squadron multi [tasks...] | 并行运行多个 Agent | | squadron login | 登录 GitHub Copilot | | squadron logout | 登出 | | squadron status | 显示认证状态 | | squadron models | 列出可用模型 | | squadron config init | 创建项目配置 | | squadron config edit | 编辑全局配置 | | squadron providers | 列出可用 Provider 及状态 | | squadron explain <code> | 解释代码或概念 | | squadron suggest <desc> | 建议 Shell 命令 |

选项

# 使用不同模型
squadron chat -m gpt-4o
squadron chat -m claude-sonnet-4
squadron chat -m ollama:llama3.2

# 指定 Provider
squadron chat --provider anthropic -m claude-sonnet-4-20250514

# 跳过确认提示 (YOLO 模式)
squadron chat --yolo

# 查看可用模型
squadron models

# 刷新模型列表
squadron models --refresh

聊天界面

快捷键

| 按键 | 操作 | |------|------| | Enter | 发送消息 | | Esc | 取消当前任务 | | ↑/↓ | 浏览历史 | | Tab | 补全 @file 引用 |

特殊命令

| 命令 | 说明 | |------|------| | /help | 显示帮助 | | /clear | 清屏 | | /model | 切换 AI 模型 | | /persona | 切换 AI 人格 | | /session | 管理会话 | | /compact | 压缩上下文 | | /providers | 列出可用 Provider | | /quit | 退出 |

AI 人格

Squadron 内置多种 AI 风格,灵感来自业界工具:

| 人格 | 说明 | |------|------| | default | 平衡的编程助手 | | claude-code | 专业、简洁 (Claude Code 风格) | | cursor-agent | 主动、分步骤 (Cursor 风格) | | windsurf | 自主、上下文感知 (Windsurf 风格) | | cline | 谨慎的工程师 (Cline/RooCode 风格) | | devin | 独立 Agent (Devin 风格) | | minimal | 极简回复 | | teacher | 边编码边讲解 |

使用 /persona 切换,或在配置中设置:

persona: cursor-agent

@file 引用

输入 @ 自动补全文件引用:

> @src/          # 浏览目录
> @package.json  # 引用特定文件
> @src/cli       # 模糊搜索

MCP (Model Context Protocol)

MCP 允许你通过外部工具和上下文 Provider 扩展 Squadron。

支持的传输类型

| 类型 | 说明 | |------|------| | stdio | 本地进程通信 (推荐) | | http | HTTP REST API | | sse | Server-Sent Events 流式通信 |

可用的 MCP 服务器

mcp:
  # 官方 Anthropic MCP 服务器
  filesystem:
    type: stdio
    command: npx
    args: ["-y", "@anthropic-ai/mcp-server-filesystem", "."]

  github:
    type: stdio
    command: npx
    args: ["-y", "@anthropic-ai/mcp-server-github"]
    env:
      GITHUB_TOKEN: ${GITHUB_TOKEN}

  sqlite:
    type: stdio
    command: npx
    args: ["-y", "@anthropic-ai/mcp-server-sqlite", "./data.db"]

  # 社区 MCP 服务器
  brave-search:
    type: stdio
    command: npx
    args: ["-y", "@anthropic-ai/mcp-server-brave-search"]
    env:
      BRAVE_API_KEY: ${BRAVE_API_KEY}

MCP 工具会以 mcp_<server>_<tool> 的命名格式出现在 Agent 的工具列表中。

LSP (Language Server Protocol)

LSP 提供代码智能功能,如悬停提示、跳转定义和查找引用。

安装

为你的语言安装语言服务器:

# TypeScript/JavaScript
npm install -g typescript-language-server typescript

# Python
pip install python-lsp-server

# Go
go install golang.org/x/tools/gopls@latest

# Rust
rustup component add rust-analyzer

.squadron.yml 中配置:

lsp:
  typescript:
    command: typescript-language-server
    args: ["--stdio"]

  python:
    command: pylsp

  go:
    command: gopls

  rust:
    command: rust-analyzer

功能

  • 悬停提示: 获取类型信息和文档
  • 跳转定义: 跳转到符号定义
  • 查找引用: 查找符号的所有使用位置
  • 文档符号: 列出文件中的所有符号

可用工具

Agent 可以使用 17+ 个内置工具:

文件操作

| 工具 | 说明 | |------|------| | read_file | 读取文件内容 (带行号) | | write_file | 创建或覆写文件 | | edit_file | 替换文件中的特定字符串 |

代码搜索

| 工具 | 说明 | |------|------| | glob | 按模式查找文件 (fast-glob) | | grep | 搜索文件内容 (ripgrep) |

Shell & Git

| 工具 | 说明 | |------|------| | bash | 执行 Shell 命令 | | git_status | 显示工作区状态 | | git_diff | 显示差异 | | git_log | 显示提交历史 | | git_commit | 创建提交 | | git_add | 暂存文件 | | git_branch | 管理分支 | | git_push | 推送到远程 | | git_pull | 从远程拉取 |

其他

| 工具 | 说明 | |------|------| | run_tests | 自动检测并运行测试 | | web_fetch | 获取网页并转为 Markdown | | todo_write | 跟踪任务进度 | | subagent | 派生子 Agent 处理子任务 |

MCP 工具

配置 MCP 服务器后,其工具以 mcp_<server>_<tool> 的命名格式可用。

架构

squadron-cli/
├── src/
│   ├── cli.ts                 # CLI 入口 (Commander.js)
│   ├── providers/
│   │   ├── index.ts           # 多 Provider 路由
│   │   ├── copilot.ts         # GitHub Copilot API
│   │   ├── anthropic.ts       # Anthropic Claude API
│   │   └── ollama.ts          # Ollama + OpenAI 兼容
│   ├── agents/
│   │   └── orchestrator.ts    # Agent 执行引擎
│   ├── tools/
│   │   └── index.ts           # 工具定义 (17+ 工具)
│   ├── mcp/
│   │   └── client.ts          # MCP 协议客户端
│   ├── lsp/
│   │   └── client.ts          # LSP 协议客户端
│   ├── ui/
│   │   ├── InkChat.tsx        # 主聊天界面 (Ink/React)
│   │   ├── ParallelChat.tsx   # 多 Agent 视图
│   │   ├── theme.ts           # UI 主题
│   │   └── components.tsx     # 可复用 UI 组件
│   └── utils/
│       ├── config.ts          # YAML 配置
│       ├── permissions.ts     # 工具权限系统
│       ├── persona.ts         # AI 人格
│       ├── fileIndex.ts       # 文件索引 & @mentions
│       ├── session.ts         # 会话管理
│       └── markdown.ts        # Markdown 渲染
├── CLAUDE.md                  # 开发指南
└── docs/                      # 文档

技术栈

| 库 | 用途 | |---|------| | Ink | 终端 UI (React) | | simple-git | Git 操作 | | @vscode/ripgrep | 快速代码搜索 | | eventsource-parser | SSE 流式处理 | | turndown | HTML 转 Markdown | | fast-glob | 文件模式匹配 | | yaml | YAML 配置 | | @anthropic-ai/sdk | Anthropic API | | better-sqlite3 | 会话持久化 | | ignore | Gitignore 解析 |

开发

# 克隆仓库
git clone https://github.com/JingYeoh/squadron.git
cd squadron

# 安装依赖
npm install

# 构建
npm run build

# 运行测试
npm test

# 本地运行
npm start

# 全局链接用于开发
npm link
squadron

贡献

欢迎贡献!请先阅读我们的贡献指南

  1. Fork 仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

许可证

MIT © Squadron CLI Contributors

致谢