ABCoder, an AI-oriented Code-processing Framework, is designed to enhance and extend the coding context for Large-Language-Model (LLM), finally boosting the development of AI-assisted-programming applications.
-
Universal Abstract-Syntax-Tree (UniAST), a language-independent, AI-friendly specification of code information, providing a boundless, flexible and structural coding context for both AI and humans.
-
General Parser, parses arbitrary-language codes to UniAST.
-
General Writer transforms UniAST back to code.
-
Code-Retrieval-Augmented-Generation (Code-RAG), provides a set of MCP tools to help the LLM understand code repositories precisely and locally. And it can support both in-workspace and out-of-workspace third-party libraries simultaneously -- I guess you are thinking about DeepWiki and context7, but ABCoder is more reliable and confidential -- no need to wait for their services to be done, and no worry about your codes will be uploaded!
Based on these features, developers can easily implement or enhance their AI-assisted programming applications, such as reviewing, optimizing, translating, etc.
-
Install ABCoder:
go install github.com/cloudwego/abcoder@latest
-
Use ABCoder to parse a repository to UniAST (JSON)
abcoder parse {language} {repo-path} -o xxx.jsonABCoder will try to install any dependency automatically. In case of failure (or if you want to customize installation), refer to the docs.
For example, to parse a Go repository:
git clone https://github.com/cloudwego/localsession.git localsession abcoder parse go localsession -o /abcoder-asts/localsession.json
-
Integrate ABCoder's MCP tools into your AI agent.
{ "mcpServers": { "abcoder": { "command": "abcoder", "args": [ "mcp", "{the-AST-directory}" ] } } } -
Enjoy it!
Try to click and watch the video below:
-
You can add more repo ASTs into the AST directory without restarting abcoder MCP server.
-
Try to use the recommended prompt and combine planning/memory tools like sequential-thinking in your AI agent.
ABCoder provides deep integration with Claude Code through the AST-Driven Coding workflow, enabling hallucination-free code analysis and precise execution.
-
Install ABCoder Claude Configuration
Copy
docs/.claude/to your home directory or project root:cp -r docs/.claude ~/ -
Configure ABCoder MCP Server
Configure in Claude Code's
~/.claude.json(the hook usesabcoder parse go/ts . -o ~/.asts/repo.jsonfor the default AST folder):{ "mcpServers": { "abcoder": { "command": "abcoder", "args": ["mcp", "~/.asts"] } } } -
Configure Hooks
Claude Code will automatically read hooks from
~/.claude/settings.jsonto enable:- Auto-detect language and generate AST before calling
mcp__abcodertools - Display ABCoder workflow SOP to Claude after
list_repos - Remind to call
get_ast_noderecursively
- Auto-detect language and generate AST before calling
.claude/hooks provide a 4-layer analysis chain from repository to node details:
list_repos → get_repo_structure → get_package_structure → get_file_structure → get_ast_node
│ │ │ │ │
└── repo_name └── mod/pkg list └── file list └── node list └── dependencies/references
.claude/commands provide three custom slash commands to streamline development:
| Command | Function | Description |
|---|---|---|
/abcoder:schd |
Design implementation | Analyze codebase using ABCoder, design technical solution |
/abcoder:task <name> |
Create coding task | Generate standardized CODE_TASK document |
/abcoder:recheck <task> |
Verify solution | Critically check CODE_TASK feasibility, useful when a CODE_TASK contains external dependencies |
User Request
│
▼
/abcoder:schd ──────────→ Design Solution (ABCoder Analysis)
│ │
▼ ▼
/abcoder:task ─────────→ CODE_TASK (with Technical Specs, including accurate `get_ast_node` call args)
│ │
▼ ▼
/abcoder:recheck ────→ Verify Solution (ABCoder Validation. After `/abcoder:task` Claude Code will tell you what the external dependencies CODE_TASK contains, use `/abcoder:recheck` to analyze external ast_node and technical detail with ABCoder)
│ │
▼ ▼
sub-agent ─────────→ Execute Implementation
| File | Purpose |
|---|---|
CLAUDE.md |
Core AST-Driven Coder role definition |
settings.json |
Hooks and permissions configuration |
hooks/ |
Automation scripts (parse/prompt/reminder) |
commands/ |
Slash command definitions (abcoder:task/abcoder:schd/abcoder:recheck) |
tmpls/CODE_TASK.md |
Coding task template |
- Claude Code CLI
- abcoder MCP server (provides
mcp__abcodertools) - sequential-thinking MCP server (provides
mcp__sequential_thinkingtools, optional)
For detailed configuration, see docs/.claude/README.md
Watch the demo video here
You can also use ABCoder as a command-line Agent like:
export API_TYPE='{openai|ollama|ark|claude}'
export API_KEY='{your-api-key}'
export MODEL_NAME='{model-endpoint}'
abcoder agent {the-AST-directory}For example:
$ API_TYPE='ark' API_KEY='xxx' MODEL_NAME='zzz' abcoder agent ./testdata/asts
Hello! I'm ABCoder, your coding assistant. What can I do for you today?
$ What does the repo 'localsession' do?
The `localsession` repository appears to be a Go module (`github.com/cloudwego/localsession`) that provides functionality related to managing local sessions. Here's a breakdown of its structure and purpose:
...
If you'd like to explore specific functionalities or code details, let me know, and I can dive deeper into the relevant files or nodes. For example:
- What does `session.go` or `manager.go` implement?
- How is the backup functionality used?
$ exit- NOTICE: This feature is Work-In-Progress. It only supports code analysis at present.
ABCoder currently supports the following languages:
| Language | Parser | Writer |
|---|---|---|
| Go | ✅ | ✅ |
| Rust | ✅ | Coming Soon |
| C | ✅ | Coming Soon |
| Python | ✅ | Coming Soon |
| JS/TS | ✅ | Coming Soon |
| Java | ✅ | Coming Soon |
We encourage developers to contribute and make this tool more powerful. If you are interested in contributing to ABCoder project, kindly check out our guide:
Note: This is a dynamic README and is subject to changes as the project evolves.
- How to become a member: COMMUNITY MEMBERSHIP
- Issues: Issues
- Lark: Scan the QR code below with Register Feishu to join our CloudWeGo/abcoder user group.
Thank you for your contribution to ABCoder!
This project is licensed under the Apache-2.0 License.


