Attocode Code Intelligence

io.github.eren23由 GitHub 帳號 eren23 發布v0.1.28更新於 Nov 7, 2026

Local code search, symbol navigation and change impact for coding agents. No model, no API key.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

本機程式碼智慧 MCP 伺服器,讓編碼助理進行程式碼搜尋、符號導覽、相依性檢視與變更影響分析。

可以做什麼
  • 尋找程式碼:語意搜尋、快速搜尋、符號搜尋、引導式探索與相關脈絡
  • 讀取符號:定義、原始碼、交互參照與呼叫圖查詢
  • 檢視結構:相依性、程式碼庫探索與專案概況
  • 規劃變更:影響分析、測試建議與變更審查
  • 檢查伺服器能力;完整設定檔另含約 140 個工具,涵蓋規則、安全掃描、歷史與快照
適用情境
適合編碼助理在本機程式碼庫中定位程式碼、追蹤參照,或判斷某次變更會影響哪些檔案與測試的情況。它是本機離線索引,適合不希望把程式碼送往託管服務的團隊。
執行需求
以本機程序執行,可用 uvx 啟動或透過 uv 安裝;需要 Python 3.12 以上版本與 Git。需以 --project 指定專案或提供單一工作區根目錄,否則會尋找 .git 等儲存庫標記。透過 init 指令完成設定,可設定 Codex、Claude Code、Cursor 等用戶端。預設不需要 API 金鑰或網路。
安裝前請注意
第一次搜尋會觸發索引建置,可能顯示索引正在預熱,此時空結果不代表程式碼不存在。索引會寫入專案內的 .attocode 目錄。選用功能會把原始碼片段送往第三方:透過 OpenRouter 的託管重排預設關閉,OpenAI 嵌入僅在明確啟用時使用。README 指出尚未證明此伺服器能讓助理更快或更準確,使用它的執行成本較高。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Attocode Code Intelligence,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

attocode-code-intel

Local code search and navigation for coding agents and for people. It runs as an MCP server for Codex, Claude Code, Cursor and other MCP clients, and as a command in your terminal. It needs no model, no API key and no network.

Status: beta. We measured the search quality (see What we measured). We have not shown that it makes agents faster or more accurate.

Quickstart

You need Python 3.12 or later and Git.

sh
uv tool install attocode-code-intelcd /path/to/your/projectattocode-code-intel init

Then restart your agent. init configures Codex, Claude Code and Cursor. Use --client claude, --client codex or --client cursor for one client. Codex needs a trusted project for a project configuration. Claude Code can ask you to enable the project MCP server.

To check the setup, run attocode-code-intel doctor. It starts the configured server, calls two tools and shows the result for each client. The probe also reports the executable and server version returned by that new probe. An already running client session must be checked separately.

For other clients (VS Code, Zed, Windsurf, Claude Desktop and more), run attocode-code-intel install <target>. attocode-code-intel commands lists the targets.

To run the server without an installation, use uvx. This is a configuration for any MCP client that starts a local command:

json
{  "mcpServers": {    "attocode-code-intel": {      "command": "uvx",      "args": ["attocode-code-intel", "--project", "/absolute/path/to/your/project"]    }  }}

You can omit --project if the client sends one workspace root. Otherwise the server looks for a repository marker such as .git in the working folder and its parents, but never selects your home folder. If it finds no repository, it stops with an error.

To use the latest source, install from a clone of this repository: uv tool install /path/to/attocode/packages/code-intel.

What your agent gets

Version 0.1.28 summarizes duplicate compact-search metadata diagnostics after evidence fitting. Full lexical-index details remain at data.ranking.index, with readiness and coverage hints in metadata.ranking.index. Results and source excerpts are unchanged. See the release notes.

Version 0.1.27 fixes a dictionary-size error during symbol inspection when AST hydration changes the cache concurrently. Namespace resolution snapshots cached file membership; later changes appear in the next build. See the release notes.

Version 0.1.26 gives Rust precision lookups a shared five-second budget and fixes cancelled startup cleanup when a child retains inherited pipes. Other languages keep two seconds; longer reloads still return partial evidence.

Version 0.1.25 uses OpenAI embeddings only when you set ATTOCODE_EMBEDDING_MODEL=openai. Before, an OPENAI_API_KEY in the environment was enough to send code chunks to OpenAI at index time. Rust references are also more reliable while rust-analyzer loads.

Version 0.1.24 adds ATTOCODE_INTEL_RANKING_PROVIDER=openrouter, a preset for the opt-in hosted rerank. In a frozen trial with 24 short questions, the rerank found 24 of 26 labeled files in the first five results, against 20 without it; see Hosted rerank. Rerank stays off by default, because it sends source excerpts to OpenRouter.

Version 0.1.23 is listed in the official MCP Registry and documents a uvx quick start. The opt-in hosted rerank now accepts the dated model ID that OpenRouter returns; see Hosted rerank. Rerank stays off by default.

Version 0.1.22 adds an opt-in discovery budget of up to 100,000 files (ATTOCODE_INTEL_DISCOVERY_MAX_FILES; the default stays 50,000). It also packages the LLM client, so ATTOCODE_FLAG_CONFIDENCE=llm and LLM rule synthesis work from a PyPI install when an OpenRouter or Anthropic key is set.

Version 0.1.21 includes configured search-discovery coverage, OCaml interface parsing and more conservative Go/Rust fallback evidence. The existing 100 ms native budget and 50,000-file discovery safety ceiling remain; bounded fallback is heuristic.

Version 0.1.20 improves native OCaml/Perl call candidates and conservative workspace import candidates for OCaml, Perl and Crystal. Physical paths and ambiguity remain guarded; native limits, ranking and dependencies are unchanged. Optional grammars must be explicitly available before analysis; navigation never downloads them.

Version 0.1.19 restores source text into spare space after fitting a complete compact search page. Existing hits, visible text, source lines and continuations remain protected within the same response budget; ranking and retrieval are unchanged.

Version 0.1.7 also provides changes and trace commands: investigate a diff, follow source-backed caller paths, export JSON/Markdown, and check or refresh saved evidence. MCP equivalents change_context and trace_flow are local full-profile tools. Version 0.1.8 adds exact file/symbol selection and bounded changed-class summaries, with --class-mode expand for class-wide callers. Version 0.1.9 keeps Python docstrings and parameter types, and lists impact results nearest first. Version 0.1.10 shows the best test hit second for "tested" searches, and counts Swift Tests/ folders as tests. Version 0.1.11 counts more test file names as tests, such as _test.dart and Perl .t scripts and t/ modules. Version 0.1.12 makes doctor --client claude read the local-scope entry that claude mcp add writes to ~/.claude.json. Version 0.1.13 fills compact search pages within their budget, offers bounded deeper searches, and repairs stale navigation indexes after successful restart parsing. Version 0.1.18 restores the ready phase after a failed snapshot load is followed by a complete fallback rebuild. Incomplete recovery stays guarded.

Version 0.1.17 lets a later explicit inspection retry a failed selected-file parse after a one-second cooldown, preserving immediate-repeat and source guards. Version 0.1.16 stabilizes tied symbol pages and reduces the Docker image while preserving runtime contracts. It adds bounded online maintenance evidence; the preview and restart experiments did not justify product changes. Version 0.1.15 adds parser ownership by thread, one language-server stderr reader, bounded native recovery without static callers and release install verification on GitHub runners. Version 0.1.14 adds bounded selected-file recovery, safe navigation publication, guarded Elixir definitions and doctor probe identity. See the change investigation guide.

The agent sees 16 tools (the daily profile):

UseTools
Find codesemantic_search, fast_search, search_symbols, bootstrap, relevant_context
Read a symbolinspect_symbol, symbols, cross_references, call_graph
See structuredependencies, explore_codebase, project_summary
Plan a changeimpact_analysis, suggest_tests, review_change
Check the servercapabilities
  • When the agent knows a symbol, inspect_symbol(symbol_name="...", task_hint="...") gives the definition, the source, the references and candidate tests in one call.
  • In an unfamiliar repository, bootstrap(task_hint="...") finds the relevant code and gives a map.
  • impact_analysis and suggest_tests help plan the checks for a change.

For all tools (about 140: rules, security scans, history, snapshots and more), add --profile full to init. The tool catalog lists them. The search details page describes ranking, the response format and the experimental rerankers.

For an experimental local seven-tool surface (0.1.5 or later), use init --profile lean and restart your client. It advertises bootstrap, search_symbols, inspect_symbol, semantic_search, impact_analysis, suggest_tests and capabilities, with conditional routing instructions and 2,000-token responses. Without file watching, notify_file_changed is an eighth tool. Advanced tools require a full-profile session. This opt-in profile has no demonstrated completion benefit; see the completed pilot.

Commands for people

Run these in your project:

sh
attocode-code-intel query "parse config"      # search the code with its own wordsattocode-code-intel symbols src/app.py        # the symbols of a fileattocode-code-intel symbols --search greet    # find a symbol by nameattocode-code-intel impact src/app.py         # the files that a change can affectattocode-code-intel deps src/app.py           # what a file imports, and what imports itattocode-code-intel hotspots                  # the files with the most risk or complexity

Search matches the words of the code and its paths. It does not use embeddings unless you install the semantic extra.

What we measured

  • Search. We ran the 560 issues of Loc-Bench V1, with the full issue as the query. For 53.2% of them, the first five files held all files of the fix (file Acc@5 0.532). On a mix of 10 public benchmarks, file Acc@5 was 0.425. See the first-stage results and the matrix results.
  • Agents. In four studies, Claude Code (Sonnet 5.5) named the files to edit for an issue. The server did not raise file Acc@5. Each run with the server cost 1.4 to 2.1 times as much. When the agent could choose, it seldom called the server. See the agent pilot and study R3.

The R6 review study found no demonstrated review benefit. The completed R7 repair pilot also found no demonstrated benefit; its reviewed decision is to stop expansion. The 2026-10-22 investigation pilot stopped incomplete after its first task pair because structured-output/tool calls failed the frozen protocol. It provides no quality, cost or time benefit evidence.

Limits and troubleshooting

  • First search. The first tool call starts the index build. A search waits up to 15 seconds for the index. On a large repository, a search can report that the index is warming. Then search again. An empty result during warm-up does not prove that the code is absent.
  • Index location. The index is in .attocode/ in your project. When the server makes that folder, it adds a .gitignore, so the index stays out of commits.
  • What the index reads. By default the server discovers at most 50,000 eligible files and skips files over 1 MB. From 0.1.22, the discovery budget setting allows an explicit limit up to 100,000; the selected index can be smaller under its independent file limit. It skips files that .gitignore ignores, and folders that start with a dot. It also skips folders named dist, build, out, output, target, env, tmp, vendor or coverage, and binary, media and lock files. If a build-named folder contains real source, explicitly re-include it with a root .gitignore entry such as !dist/; discovery and edit refresh honor that override.
  • Languages. The base install parses Bash, C, C#, C++, CSS, Elixir, Go, HCL, HTML, Java, JavaScript, JSON, Kotlin, Lua, PHP, Python, Ruby, Rust, Scala, Swift, TOML, TypeScript, YAML and Zig. Optional grammars are loaded only when already installed or cached; installing the tree-sitter-all extra does not trigger grammar downloads during navigation. A slow grammar falls back after a 100 ms parse budget. Static imports and references are partial evidence, not compiler/type resolution.
  • Degraded parsing (development builds). Selecting a missing definition in a file with a recorded native parse failure permits one bounded retry for that source/parser generation. A failed retry reports partial evidence and an attocode-code-intel notify command to queue a file refresh. Empty results and ordinary syntax errors do not trigger this recovery.
  • Test paths. Search and test suggestions recognize conventional test folders and filenames, plus supported Kotlin/Android source sets directly under src (for example commonTest, jvmTest, androidHostTest and androidDeviceTest). Helpers in those sets count as test code even without a test filename. Custom target or flavor names are not inferred from a Test suffix alone. Short queries explicitly asking for tests put recognized test files first, preserving order within each group; longer issue descriptions keep source-first behavior. Suggestions can include helpers; verify the actual runnable tests.
  • Remove the setup. Run attocode-code-intel init --remove. It restores an entry that existed before init.
  • Server does not answer. Run attocode-code-intel doctor. If a client shows "not configured", run init for it. After a change, restart the agent. In Claude Code, /mcp shows the server state.
  • HTTP server. attocode-code-intel --transport http needs the http extra. It serves only this computer unless you set ATTOCODE_API_KEY.

For one installation for all repositories, use init --global. A global server works on the repository of its working directory, or on the workspace that a tool call names.

Teams and remote agents

Self-hosting and migration covers PostgreSQL, Redis, workers, authentication, and the dashboard. The service serves native Streamable HTTP MCP at /mcp/. The dashboard provides connection snippets and knowledge editing.

sh
attocode-code-intel init --client all --server https://intel.example.com --repo REPOSITORY_UUIDattocode-code-intel doctor --client codex --remote

Set ATTOCODE_API_KEY in the agent's environment. Use intelligence:read for analysis and add intelligence:write for knowledge changes. Every repository operation checks membership and scope before using cached analysis. Results identify repository, source, commit, index coverage, and truncation. PostgreSQL stores shared knowledge with authorship, revision, and file anchors.

Local and remote entries coexist. Remote calls analyze committed branches or explicit revisions. Local edits remain local. To copy a particular learning to your team, review and run an explicit share:

sh
attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID --dry-runattocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID

cross_repo_search searches explicitly selected authorized repositories and retains provenance on each result.

Development

The package is in packages/code-intel of the attocode repository.

sh
uv sync --extra dev --extra code-inteluv run pytest -c packages/code-intel/pyproject.toml --confcutdir=packages/code-intel/tests packages/code-intel/testsuv build --package attocode-code-intel

For routine work, use .venv/bin/python -m eval.quality quick (two minutes) or local (ten minutes). They isolate scratch and caches in a monitored 5 GiB workspace and report incomplete runs separately from passes. The quality guide covers pinned multi-language workflow checks, storage inventory, cleanup and optional CPU cloud batches.

Releases use intel-v* tags (release guide).

Product and operations guide · Tool catalog · Search details · Changelog · MIT license

來源:packages/code-intel/README.md,提交 52f7aa4

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:軟體包安裝失敗。

版本歷史

5
  1. v0.1.28最新Nov 7, 2026
  2. v0.1.26Nov 4, 2026
  3. v0.1.25Nov 3, 2026
  4. v0.1.24Nov 1, 2026
  5. v0.1.23Nov 1, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分