VG Coder CLI
🚀 Powerful CLI tool & API Server để phân tích dự án, nối file mã nguồn, đếm token, xuất HTML và thực thi bash scripts qua REST API.
✨ Tính năng
📊 Code Analysis & Export
- 🔍 Phát hiện loại dự án: Tự động nhận diện Angular, Spring Boot, React, Vue, Node.js, Python, Java, .NET
- 📁 Xử lý
.gitignore: Tuân thủ chuẩn Git với multi-level ignore rules
- 🛡️ Hỗ trợ
.vgignore: Có độ ưu tiên cao hơn .gitignore, với cú pháp giống hệt
- 📜 Bỏ qua file mặc định: Tự động bỏ qua
node_modules, dist, .git, build, target
- 📄 Scan và nối file: Quét toàn bộ dự án và nối các file mã nguồn
- 🧮 Đếm token: Sử dụng
tiktoken để đếm token chính xác cho AI models
- ✂️ Chia nhỏ nội dung: Chia nội dung thông minh thành chunks nhỏ hơn
- 🌐 Xuất HTML: Tạo báo cáo HTML tương tác với syntax highlighting
- 📋 Sao chép vào Clipboard: Chế độ
-c sao chép toàn bộ code vào clipboard
- 🤖 Tối ưu cho AI: Xuất file
combined.txt với định dạng thân thiện cho AI
🚀 API Server (NEW!)
- 🌐 REST API Server: Khởi động server với
vg start
- 🎨 Beautiful Dashboard: Tự động mở web UI để test API
- 📡 5 API Endpoints:
GET /health - Health check
POST /api/analyze - Phân tích dự án, download project.txt
GET /api/info - Lấy thông tin dự án (JSON)
POST /api/execute - Thực thi bash scripts với validation
DELETE /api/clean - Xóa output directory
- ⚡ Real-time Status: Dashboard hiển thị server status live
- 🔒 Syntax Validation: Validate bash syntax trước khi execute
- 🧹 Auto Cleanup: Tự động dọn dẹp temp files
📦 Cài đặt
Từ NPM (Recommended)
npm install -g vg-coder-cli
npm install vg-coder-cli
🚀 Sử dụng
CLI Commands
1. Phân tích dự án
vg analyze
vg a
vg analyze /path/to/project --max-tokens 8192 --output ./my-output
vg analyze -c
vg analyze --clipboard
2. Xem thông tin dự án
vg info
vg info /path/to/project
3. Xóa output
vg clean
vg clean --output ./my-output
4. Khởi động API Server 🆕
vg start
vg s
vg start -p 8080
vg start --host 0.0.0.0
vg start --worker
API Endpoints
Health Check
GET http://localhost:6868/health
Response:
{
"status": "ok",
"version": "2.0.50",
"timestamp": "2026-05-09T10:07:13.000Z"
}
Analyze Project
POST http://localhost:6868/api/analyze
Content-Type: application/json
{
"path": ".",
"options": {
"maxTokens": 8000
}
}
Response: Downloads project.txt file
Get Project Info
GET http://localhost:6868/api/info?path=.
Response:
{
"path": "/path/to/project",
"primaryType": "nodejs",
"stats": {
"totalFiles": 42,
"totalSize": 123456,
"totalLines": 5000
},
"tokens": {
"total": 15000,
"averagePerFile": 357
}
}
Execute Bash Script 🆕
POST http://localhost:6868/api/execute
Content-Type: application/json
{
"bash": "mkdir -p $(dirname \"src/test.js\")\ncat <<'EOF' > src/test.js\nconsole.log('Hello');\nEOF"
}
Response:
{
"success": true,
"stdout": "",
"stderr": "",
"exitCode": 0,
"executionTime": 15
}
Features:
- ✅ Syntax validation trong
.vg/temp-execute
- ✅ Execute tại working directory
- ✅ Auto cleanup temp files
- ✅ Return stdout/stderr/exitCode
Clean Output
DELETE http://localhost:6868/api/clean
Content-Type: application/json
{
"output": "./vg-output"
}
⚙️ Options
CLI Options
-o, --output <path> | Thư mục output | ./vg-output |
-m, --max-tokens <number> | Số token tối đa mỗi chunk | 8000 |
-t, --model <model> | Model AI để đếm token | gpt-4 |
--extensions <list> | Extensions (comma-separated) | Auto-detect |
--include-hidden | Bao gồm file ẩn | false |
--no-structure | Không giữ cấu trúc file | false |
--theme <theme> | Theme cho syntax highlighting | github |
-c, --clipboard | Copy vào clipboard | false |
--save-txt | Lưu vào vg-projects.txt | false |
Server Options
-p, --port <port> | Port cho server | 6868 |
--host <host> | Bind address. Set 0.0.0.0 cho LAN/Docker port-forward (env: VG_HOST) | 127.0.0.1 |
--worker | Worker-only mode: ẩn bubble + dashboard panel trên tab AI Studio, chỉ giữ task automation | false |
🎨 Dashboard UI
Khi chạy vg start, browser tự động mở dashboard với:
- 🎯 Interactive Forms cho tất cả endpoints
- 🎨 Beautiful Gradient UI (purple to violet)
- 📊 Real-time Server Status (green/red indicator)
- 💻 Syntax Highlighting cho responses
- ⚡ Loading States cho async operations
- 📥 Auto Download cho analyze endpoint
🤖 Tích hợp AI
System Prompt cho AI
Xem file SYSTEM_PROMPT.md để biết cách tích hợp với AI.
Command Prefixes:
/ask - Q&A mode (Markdown response)
/plan - Planning mode (Checklist + bash)
/fix - Bug fix mode (Analysis + solution)
/code - Code generation (Bash script only)
Bash Script Format
Khi AI generate code với /code, format chuẩn:
mkdir -p $(dirname "path/to/file.ext")
cat <<'EOF' > path/to/file.ext
... file content ...
EOF
Quy tắc:
- ✅ Luôn có
mkdir -p $(dirname "...") trước mỗi file
- ✅ Sử dụng
<<'EOF' (có quotes) để tránh expansion
- ✅ Chỉ include files có thay đổi
- ✅ Ghi đè hoàn toàn file content
📁 Cấu trúc Output
vg-output/
├── index.html # Trang chính với navigation
├── combined.html # Tất cả code, có search
├── combined.txt # Text format, tối ưu cho AI
├── chunks/ # Chunks riêng biệt
│ ├── chunk-1.html
│ └── ...
└── assets/ # CSS, JS
🎯 Dự án được hỗ trợ
- Frontend: Angular, React, Vue.js, Svelte
- Backend: Node.js, Spring Boot, Python, .NET
- Mobile: React Native, Flutter
- Languages: JavaScript, TypeScript, Java, Python, C#, Go, Rust
- Config: JSON, YAML, XML, TOML
🛡️ Quy tắc bỏ qua file
Thứ tự ưu tiên:
.vgignore - Cao nhất
.gitignore - Trung bình
- Default rules - Thấp nhất (node_modules, .git, dist, build, target)
📝 Examples
Example 1: Analyze và Copy
vg a . -c
Example 2: API Server Workflow
vg start
curl -X POST http://localhost:6868/api/execute \
-H "Content-Type: application/json" \
-d '{"bash": "mkdir -p src && echo \"test\" > src/file.js"}'
Example 3: AI Integration
vg a . -c
curl -X POST http://localhost:6868/api/execute \
-H "Content-Type: application/json" \
-d '{"bash": "..."}'
🔧 Development
npm install
cd vetgo-auto && npm install && cd ..
npm test
npm run dev
npm run build
🚢 Release
CI tự publish lên npm khi package.json version đổi. Chỉ dùng 1 lệnh tuỳ loại bump:
npm run release:patch
npm run release:minor
npm run release:major
Mỗi lệnh tự npm version <bump> (commit + tag) rồi git push --follow-tags origin main. GitHub Actions workflow .github/workflows/publish.yml chạy tự động:
- So sánh
package.json version với npm view vg-coder-cli version. Bằng nhau → skip.
npm ci root + vetgo-auto, build extension, copy vào src/server/views/vg-coder/, build dashboard bundle.
npm publish --access public (cần secret repo NPM_TOKEN — granular access token với "bypass 2FA").
- Tag
v<version> (skip nếu đã có) + tạo GitHub Release auto-generated notes.
Manual trigger: GitHub repo → Actions → Publish to npm → Run workflow.
Update notifier
CLI dùng update-notifier v5.1.0 — sau lần chạy đầu, nếu có version mới trên npm sẽ in banner cuối tiến trình:
╭─────────────────────────────────────────╮
│ Update available 2.0.48 → 2.0.49 │
│ Run npm i -g vg-coder-cli to update │
╰─────────────────────────────────────────╯
Cache check 6h ở ~/.config/configstore/update-notifier-vg-coder-cli.json. Tự bypass khi offline / non-interactive shell.
🤝 Đóng góp
- Fork repository
- Create feature branch (
git checkout -b feature/amazing-feature)
- Commit changes (
git commit -m 'Add amazing feature')
- Push to branch (
git push origin feature/amazing-feature)
- Create Pull Request
📄 License
MIT License - xem file LICENSE để biết thêm chi tiết.
📊 Version History
v2.0.50 (Latest)
- 🤖 Worker-only mode (
vg start --worker): server prepend window.__VG_WORKER_ONLY__=true vào bundle, dashboard skip bubble + panels, chỉ chạy initTaskWorker() — tab AI Studio sạch không bị che bởi UI
- ⏲️ Idle worker tab TTL (env
VG_WORKER_IDLE_TTL_MS, default 120 000): không có task mới → launcher đóng tab → CPU container về 0%; task tới sẽ tự mở lại tab
- 🐳 Configurable bind address:
vg start --host 0.0.0.0 (hoặc env VG_HOST) cho LAN/Docker port-forward
- 🧱 Dynamic CSP bypass via
chrome.declarativeNetRequest.updateDynamicRules — fix lỗi parse static rules.json trên Chromium 120 (Linux/Docker)
v2.0.48
- 🤖 Remote Task API: external service push task chat AI Studio + nhận callback (
POST /api/tasks + webhook)
- 🧠 Multi-worker pool: mỗi Chrome profile = 1 worker, parallel + auto-failover khi rate-limit
- 🪟 Launcher SW per profile + tab management API (
GET /api/launcher/tabs, POST /api/launcher/{open,close}-tab)
- 🔁 Auto-recycle tab sau mỗi task để lock model
gemini-3-flash-preview (free + multimodal)
- 🛡️ Auto-dismiss modal: "Start creating with media", "Link a paid API key", ToS update, preference vote
- 📸 Native screenshot (
chrome.tabs.captureVisibleTab) thay html2canvas — 5x nhanh hơn, sạch CORS
- 🪵 Console + window.error ring buffer 200 + REST
POST /api/worker/logs
- 🚢 GitHub Actions auto-publish khi version bump +
npm run release:{patch,minor,major}
- 🔔 update-notifier banner cho end-user khi có version mới
Xem chi tiết: INTEGRATION.md
v1.0.10
- ✨ Added API Server with REST endpoints
- 🎨 Beautiful dashboard UI with auto-open browser
- ⚡ Bash script execution with validation
- 🔧 Shortened commands:
vg, a, -c, s
- 📝 System prompt documentation
v1.0.9
- 🚀 Initial release
- 📊 Code analysis and token counting
- 🌐 HTML export with syntax highlighting
- 📋 Clipboard integration
Repo extension:
https://github.com/tinhthanh/vetgo-auto
vg-coder.zip
📁 Directory Structure:
vg-coder/
├── assets
│ ├── icon128.png (.png)
│ ├── icon16.png (.png)
│ └── icon48.png (.png)
├── background.js (.js)
├── background.js.LICENSE.txt (.txt)
├── controller.js (.js)
├── manifest.json (.json)
├── options.css (.css)
├── options.html (.html)
├── options.js (.js)
└── rules.json (.json)
.