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.
Features
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.
Setup
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:
Copy .claude directory to your project root
Configure MCP servers in ~/.claude.json:
abcoder: for code analysis using AST
sequential-thinking: for complex problem decomposition
Replace all {{CLAUDE_HOME_PATH}} placeholders with actual project paths
Start Coding with Claude Code
Once setup, you can start coding with Claude Code:
Start Claude Code in your project directory
Use slash common /abcoder:schedule <problem_desc> to address your feature/requirement/issue, and ABCoder will help you analyze the codebase and design a technical solution.
Once all questions are set, use slash common /abcoder:task <task_name> to create a coding task(specification)
Recheck the task using /abcoder:recheck <task_name> before real implementation
Begin coding! Claude Code will process the task step by step according to the specification, leveraging the power of AST-driven analysis.
AST-Driven Coding Workflow
.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 Code Slash Commands
.claude/commands provide three custom slash commands to streamline development:
$ 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.
Supported Languages
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
Getting Involved
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:
ABCoder: AI-Based Coder(AKA: A Brand-new Coder)
Overview
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.
Features
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.
Universal Abstract-Syntax-Tree Specification
see UniAST Specification
Quick Start
Claude Code Integration
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.
Setup
Use the
init-speccommand to automatically configure Claude Code integration for your project:The
init-speccommand will:.claudedirectory to your project root~/.claude.json:abcoder: for code analysis using ASTsequential-thinking: for complex problem decomposition{{CLAUDE_HOME_PATH}}placeholders with actual project pathsStart Coding with Claude Code
Once 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 implementationAST-Driven Coding Workflow
.claude/hooksprovide a 4-layer analysis chain from repository to node details:Claude Code Slash Commands
.claude/commandsprovide three custom slash commands to streamline development:/abcoder:schedule/abcoder:task <name>/abcoder:recheck <task>Workflow
Configuration Files
CLAUDE.mdsettings.jsonhooks/commands/tmpls/ABCODER_CODE_TASK.mdDependencies
mcp__abcodertools)mcp__sequential_thinkingtools, automatically configured by init-spec)Use ABCoder as a MCP server
Install ABCoder:
Use ABCoder to parse a repository to UniAST (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:
Integrate ABCoder’s MCP tools into your AI agent.
Enjoy it!
Try to click and watch the video below:
Tips:
Use ABCoder as an Agent (WIP)
You can also use ABCoder as a command-line Agent like:
For example:
Supported Languages
ABCoder currently supports the following languages:
Getting Involved
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:
Contact Us
Contributors
Thank you for your contribution to ABCoder!
License
This project is licensed under the Apache-2.0 License.