
Write HTML. Render video. Built for agents.
ABCoder turns repositories into UniAST, a language-neutral code structure that agents can inspect locally. It exposes that structure through MCP tools and includes Claude Code commands, hooks, and templates for an AST-driven workflow.
Builders who want their agent to understand a codebase through structured local context.
You can give your agent precise repository context for analysis, planning, and implementation without shipping code to a remote service.
Converts code into a language-neutral abstract structure that is easier for agents to inspect and reason about.
Parses supported languages into UniAST and writes UniAST back to source code.
Serves repository context through MCP so an agent can inspect repos locally and work with in-workspace or third-party code.
Provides `.claude` hooks, slash commands, settings, and task templates for an AST-driven workflow.
Includes parsers for Go, Rust, C, Python, JS/TS, and Java, with language-specific tests and examples.
# Install ABCoder go install github.com/cloudwego/abcoder@latest # Run init-spec in your project directory (optional: specify target path) cd /path/to/your/project abcoder init-spec
list_repos → get_repo_structure → get_package_structure → get_file_structure → get_ast_node
│ │ │ │ │
└── repo_name └── mod/pkg list └── file list └── node list └── dependencies/referencesgo install github.com/cloudwego/abcoder@latest
abcoder parse {language} {repo-path} -o xxx.jsongit clone https://github.com/cloudwego/localsession.git localsession abcoder parse go localsession -o /abcoder-asts/localsession.json
export API_TYPE='{openai|ollama|ark|claude}'
export API_KEY='{your-api-key}'
export MODEL_NAME='{model-endpoint}'
abcoder agent {the-AST-directory}
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.
ABCoder provides deep integration with Claude Code through the AST-Driven Coding workflow, enabling hallucination-free code analysis and precise execution. Check Claude Code Specification for more details.
Use the init-spec command to automatically configure Claude Code integration for your project:
# Install ABCoder
go install github.com/cloudwego/abcoder@latest
# Run init-spec in your project directory (optional: specify target path)
cd /path/to/your/project
abcoder init-spec
The init-spec command will:
.claude directory to your project root~/.claude.json:
abcoder: for code analysis using ASTsequential-thinking: for complex problem decomposition{{CLAUDE_HOME_PATH}} placeholders with actual project pathsOnce setup, you can start coding with Claude Code:
/abcoder:schedule <problem_desc> to address your feature/requirement/issue, and ABCoder will help you analyze the codebase and design a technical solution./abcoder:task <task_name> to create a coding task(specification)/abcoder:recheck <task_name> before real implementation.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:schedule <task_desc> | Design implementation | Analyze codebase by 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:schedule ──────────→ 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)
│ │
▼ ▼
Start coding(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:schedule/abcoder:recheck) |
tmpls/ABCODER_CODE_TASK.md | Coding task template |
mcp__abcoder tools)mcp__sequential_thinking tools, automatically configured by init-spec)For detailed configuration, see claude-code-spec.md
Watch the demo video here
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.json
ABCoder 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.
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
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.

Thank you for your contribution to ABCoder!
This project is licensed under the Apache-2.0 License.
Sign in to join the discussion.
No comments yet. Be the first to say what this is good for.

Write HTML. Render video. Built for agents.
Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.

Omnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents — swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.
A theoretical reconstruction of the Claude Mythos architecture, built from first principles using the available research literature.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!