https://github.com/cloudwego/abcoder
An ai-assisted-programming development kit, supporting multiple languages
https://github.com/cloudwego/abcoder
ai-assisted-programming ast lsp
Last synced: 4 days ago
JSON representation
An ai-assisted-programming development kit, supporting multiple languages
- Host: GitHub
- URL: https://github.com/cloudwego/abcoder
- Owner: cloudwego
- License: apache-2.0
- Created: 2025-02-13T08:04:55.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-06-09T03:55:28.000Z (14 days ago)
- Last Synced: 2025-06-09T04:37:11.435Z (14 days ago)
- Topics: ai-assisted-programming, ast, lsp
- Language: Go
- Homepage:
- Size: 5.23 MB
- Stars: 59
- Watchers: 7
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# ABCoder: AI-Based Coder(AKA: A Brand-new Coder)

# Overview
ABCoder, an general AI-oriented code-processing SDK, is designed to enhance coding context for Large-Language-Model (LLM), and boost developing AI-assisted-programming applications.## Features
- Universal Abstract-Syntax-Tree (UniAST), an language-independent, AI-friendly specification of code information, providing a boundless, flexible and structrual coding context for both AI and hunman.
- General Parser, parses abitary-language codes to UniAST.- General Writer, transforms UniAST back to codes.
- (Comming Soon) General Iterator, a framework for visiting the UniAST and implementing code-batch-processing workflows.- (Comming Soon) Code Retrieval-Augmented-Generation (RAG), provides a set of tools and functions to help the LLM understand your codes much deeper than ever.
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](docs/uniast-zh.md)
# Getting Started
1. Install ABCoder:
```bash
go install github.com/cloudwego/abcoder@latest
```
2. Use ABCoder to parse a repository to UniAST (JSON)
```bash
abcoder parse {language} {repo-path} > ast.json
```
3. Do your magic with UniAST...
4. Use ABCoder to write an UniAST back to codes
```bash
abcoder write {language} ast.json
```# Supported Languages
ABCoder currently supports the following languages:
| Language | Parser | Writer |
| -------- | ----------- | ----------- |
| Go | ✅ | ✅ |
| Rust | ✅ | Coming Soon |
| C | Coming Soon | ❌ |
| Python | 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:
- [Parser Extension](docs/parser-zh.md)> Note: This is a dynamic README and is subject to changes as the project evolves.