SuperAPI AI 工具集

cicada

CICADA 是一个面向 AI 代码助手的代码智能工具,通过 AST 级索引为 AI 提供结构化、省 token 的代码上下文,支持 Elixir、Python、TypeScript 等 17 种以上语言。包含模块搜索、函数追踪、调用点分析、Git 与 PR 归因、语义搜索、依赖分析等能力,以 MCP 工具形式与编辑器集成。项目已停止维护,作者建议不要使用。

访问官网

工具介绍

用途

CICADA(Code Intelligence: Contextual Analysis, Discovery, and Attribution)的目标是解决 AI 代码助手进行“盲目搜索”的问题:直接用 Grep 会把整个文件内容塞进上下文,而用户可能只需要一个函数签名,从而挤占模型用于推理的空间。CICADA 通过 AST 级索引,为 AI 助手提供结构化、预索引的代码知识,让上下文更紧凑、token 消耗更低。

重要提示:官方仓库中明确标注警告——当前 AI 智能体的工作方式已与项目构想时不同,在前沿模型的最新基准测试中,使用代码智能工具几乎没有优势。CICADA 已停止维护,作者建议不要使用该工具或其他任何“代码智能”工具。

主要能力

  • AST 级索引:记录模块、函数、类的定义,包含签名、spec 和文档。
  • 多语言支持:Elixir、Python、TypeScript、JavaScript、Rust、Go、Java、Kotlin、Scala、C/C++、Ruby、C#、Visual Basic、Dart、PHP、Erlang(beta)等 17 种以上语言。
  • 完整调用点追踪:跨语言处理别名、导入和动态引用。
  • 语义搜索:支持关键词提取或嵌入(Ollama 集成)按概念查找代码。
  • Git 与 PR 归因:呈现代码存在的原因,而不仅是内容。
  • 依赖分析:双向追踪(谁调用了它、它调用了谁)。
  • 自动语言检测:可在多语言代码库中无缝工作。

使用方式

通过编辑器内置的 MCP 管理安装 CICADA。安装后可用命令包括:

  • cicada [claude|cursor|vs|gemini|codex|opencode|zed]:按项目一键交互式设置。
  • cicada-mcp:MCP 服务器(由编辑器自动启动)。
  • cicada serve:启动 REST API 服务器,通过 HTTP 访问所有 MCP 工具。
  • cicada status:显示索引状态、PR 索引、链接状态、agent 文件、MCP 配置。
  • cicada stats [repo]:显示使用统计(工具调用、token、执行时间)。
  • cicada watch:监视文件变更并自动重新索引。
  • cicada index:使用自定义选项重新索引代码(-f/--force、--keywords、--embeddings、--watch)。
  • cicada index-pr:为 PR 归因索引拉取请求。
  • cicada run [tool]:直接从 CLI 执行 7 个 MCP 工具中的任意一个。
  • cicada agents install:将 Claude Code agents 安装到 ./.claude/ 目录。
  • cicada link [parent_dir]:将当前仓库链接到已有索引。
  • cicada clean:完全移除 CICADA 集成及所有设置。

MCP 工具

CICADA 面向 Elixir、Python 和 Erlang 代码库提供 7 个专用 MCP 工具:

  • query:智能代码发现入口,自动区分关键词与模式,支持 scope、recent、filter_type、match_source 等过滤,返回片段并给出下一步建议,可用 path_pattern 按位置过滤。
  • search_module:深度模块分析,查看函数、签名、spec、文档;Python 显示类及方法数量与签名,Elixir 显示带 arity 的函数;支持 what_calls_it=true(影响分析)和 what_it_calls=true(依赖分析),支持通配符与 OR 模式,可按可见性过滤。
  • search_function:函数使用追踪,查找定义与所有调用点,默认 what_calls_it=true 查看调用者,what_it_calls=true 查看依赖,可用 include_usage_examples=true 包含代码示例,按 usage_type 过滤 source/tests/all。
  • git_history:统一 Git 操作,支持单行 blame+PR、行范围分组 blame、按函数名追踪演进、文件历史,支持 recent 时间过滤和 author 过滤,自动集成 PR 索引。
  • expand_result:从查询结果下钻,自动识别模块或函数,显示完整详情与用法示例。
  • query_jq:对索引执行高级 jq 查询,支持 schema 发现、compact/pretty 输出、大结果抽样。

所有工具返回结构化 Markdown/JSON 片段(签名、调用点、PR 元数据),而非完整文件。v0.5.1 起默认使用紧凑输出以最小化 token,可用 verbose=true 获取完整文档与 spec。

隐私与安全

  • 100% 本地:解析与索引在用户机器上完成,无外部访问。
  • 无遥测:不收集使用情况或任何遥测数据。
  • 只读工具:MCP 端点只读取索引,不能修改仓库。
  • 可选 GitHub 访问:PR 功能依赖 gh 和用户已有的 OAuth token。
  • 数据布局:~/.cicada/projects/<repo_hash>/ 下包含 index.json、config.yaml、hashes.json、pr_index.json。仓库中只会新增编辑器配置(.mcp.json、.cursor/mcp.json、.vscode/settings.json、.gemini/settings.json、.codex/mcp.json 或 .opencode.json)。

适用场景

适合希望以本地优先方式为 AI 助手提供丰富 Git 上下文(PR 归因、blame、函数演进追踪)并优化 token 使用的 Elixir 或 Python 等代码库。官方对比说明:需要基于 LSP 的代码编辑能力且可接受更高资源占用时可选 Serena;Elixir 项目且偏好 LLM 语义摘要时可选 Codicil。

限制与注意事项

  • 项目已停止维护,作者明确建议不要使用。
  • Erlang、Java/Kotlin/Scala、C#/Visual Basic 支持标记为 Beta 或开发中;生产就绪语言为 Elixir(tree-sitter)、Python(SCIP)、TypeScript(SCIP)、JavaScript(SCIP)。
  • Python 首次索引可能比 Elixir 慢(需 SCIP 生成步骤),大型 .venv 会自动排除,部分动态 Python 模式可能无法捕获。
  • 关键词搜索需在索引时启用关键词提取,否则报“Keyword search not available”。
  • PR 功能需配置 GitHub CLI;首次索引会拉取所有 PR,可能较慢并受 GitHub API 速率限制。
  • Watch 模式仅监视 .ex、.exs(Elixir)和 .py(Python)文件,排除 deps、_build、node_modules、.git、assets、priv、.venv、venv。