https://github.com/tunsuy/claude-code-go
A Go implementation of Claude Code — This project was built entirely by a team of Claude AI agents working in parallel
https://github.com/tunsuy/claude-code-go
ai anthropic chatgpt claude cli coding-assistant go golang llm mcp terminal tui
Last synced: 20 days ago
JSON representation
A Go implementation of Claude Code — This project was built entirely by a team of Claude AI agents working in parallel
- Host: GitHub
- URL: https://github.com/tunsuy/claude-code-go
- Owner: tunsuy
- License: mit
- Created: 2026-04-02T06:29:08.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-04-21T03:48:12.000Z (22 days ago)
- Last Synced: 2026-04-21T04:41:27.552Z (22 days ago)
- Topics: ai, anthropic, chatgpt, claude, cli, coding-assistant, go, golang, llm, mcp, terminal, tui
- Language: Go
- Homepage:
- Size: 3.56 MB
- Stars: 10
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.es.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
Claude Code Go
🤖 Reimplementación en Go de Claude Code — Asistente de programación con IA en tu terminal
English •
简体中文 •
日本語 •
한국어 •
Español •
Français
---
TUI interactiva con lectura de archivos y visualización de pensamiento en tiempo real
Análisis completo del proyecto con desglose de arquitectura
---
## ¿Qué es esto?
Este proyecto es una **reimplementación completa en Go de [Claude Code](https://claude.ai/code)** — el CLI oficial de TypeScript de Anthropic — reescrito módulo por módulo en Go, cubriendo todas las características principales: TUI, uso de herramientas, sistema de permisos, coordinación multi-agente, protocolo MCP, gestión de sesiones y más.
### Construido completamente por agentes de IA — cero código escrito por humanos
> **Ningún humano escribió una sola línea de código de producción en este repositorio.**
Todo el proyecto — diseño de arquitectura, documentos de diseño detallados, implementación paralela, revisión de código, QA y pruebas de integración — fue producido por **9 agentes de IA Claude** colaborando en un flujo de trabajo multi-agente estructurado:
```
Agente PM → plan del proyecto, hitos, programación de tareas
Agente Tech Lead → diseño de arquitectura, revisión de documentos de diseño, revisión de código
Agent-Infra → capa de infraestructura (tipos, configuración, estado, sesión)
Agent-Services → capa de servicios (cliente API, OAuth, MCP, compactación)
Agent-Core → motor central (bucle LLM, despacho de herramientas, coordinador)
Agent-Tools → capa de herramientas (archivo, shell, búsqueda, web — 18 herramientas)
Agent-TUI → capa de UI (Bubble Tea MVU, temas, modo Vim)
Agent-CLI → capa de entrada (Cobra CLI, DI, fases de bootstrap)
Agente QA → estrategia de pruebas, aceptación por capa, pruebas de integración
```
Resultado: ~**7,000 líneas de código de producción + suite de pruebas completa**, con `go test -race ./...` pasando.
---
## Características
- **TUI interactiva** — Interfaz de terminal completa construida con [Bubble Tea](https://github.com/charmbracelet/bubbletea), con temas oscuro/claro
- **Uso de herramientas agénticas** — Lectura/escritura de archivos, ejecución de shell, búsqueda y más, todo mediado a través de una capa de permisos
- **Coordinación multi-agente** — Genera sub-agentes en segundo plano para tareas paralelas
- **Soporte MCP** — Conecta herramientas externas a través del [Model Context Protocol](https://modelcontextprotocol.io)
- **Memoria CLAUDE.md** — Carga automáticamente el contexto del proyecto desde archivos `CLAUDE.md` en el árbol de directorios
- **Gestión de sesiones** — Reanuda conversaciones anteriores; compacta automáticamente historiales largos
- **Modo Vim** — Atajos de teclado Vim opcionales en el área de entrada
- **Autenticación OAuth + clave API** — Inicia sesión con OAuth de Anthropic o proporciona una `ANTHROPIC_API_KEY`
- **18 comandos slash integrados** — `/help`, `/clear`, `/compact`, `/commit`, `/diff`, `/review`, `/mcp` y más
- **Respuestas en streaming** — Streaming de tokens en tiempo real con visualización de bloques de pensamiento
## Arquitectura
Claude Code Go está organizado en seis capas:
```
┌─────────────────────────────────────┐
│ CLI (cmd/claude) │ punto de entrada Cobra
├─────────────────────────────────────┤
│ TUI (internal/tui) │ interfaz Bubble Tea MVU
├─────────────────────────────────────┤
│ Tools (internal/tools) │ herramientas de archivo, shell, búsqueda, MCP
├─────────────────────────────────────┤
│ Core Engine (internal/engine) │ streaming, despacho de herramientas, coordinador
├─────────────────────────────────────┤
│ Services (internal/api, oauth, │ API de Anthropic, OAuth, cliente MCP
│ mcp, compact) │
├─────────────────────────────────────┤
│ Infra (pkg/types, internal/config, │ tipos, configuración, estado, hooks, plugins
│ state, session, hooks) │
└─────────────────────────────────────┘
```
Consulta [`docs/project/architecture.md`](docs/project/architecture.md) para un desglose detallado.
## Requisitos
- Go 1.21 o posterior
- Una [clave API de Anthropic](https://console.anthropic.com/) **o** cuenta Claude.ai (OAuth)
## Instalación
### Desde el código fuente
```bash
git clone https://github.com/tunsuy/claude-code-go.git
cd claude-code-go
make build
# El binario se coloca en ./bin/claude
```
Añadir a tu `PATH`:
```bash
export PATH="$PATH:$(pwd)/bin"
```
### Usando `go install`
```bash
go install github.com/tunsuy/claude-code-go/cmd/claude@latest
```
## Inicio rápido
```bash
# Configura tu clave API (o usa OAuth — ver Autenticación abajo)
export ANTHROPIC_API_KEY=sk-ant-...
# Inicia una sesión interactiva en el directorio actual
claude
# Haz una pregunta única y sal
claude -p "Explica el punto de entrada principal de este proyecto"
# Reanuda la sesión más reciente
claude --resume
```
## Autenticación
**Clave API (recomendado para CI/scripts):**
```bash
export ANTHROPIC_API_KEY=sk-ant-...
```
**OAuth (recomendado para uso interactivo):**
```bash
claude /config # abre el flujo OAuth en tu navegador
```
## Proveedores de API
Claude Code Go soporta múltiples proveedores de API, permitiéndote usar no solo la API de Anthropic, sino también APIs compatibles con OpenAI.
### Proveedores soportados
| Proveedor | Descripción | Variables de entorno |
|-----------|-------------|---------------------|
| `direct` (predeterminado) | API directa de Anthropic | `ANTHROPIC_API_KEY`, `ANTHROPIC_BASE_URL` |
| `openai` | OpenAI y APIs compatibles | `OPENAI_API_KEY`, `OPENAI_BASE_URL` |
| `bedrock` | AWS Bedrock | Credenciales AWS vía entorno |
| `vertex` | Google Cloud Vertex AI | Credenciales GCP vía entorno |
### Usando APIs compatibles con OpenAI
Para usar OpenAI, DeepSeek, Qwen, Moonshot o cualquier API compatible con OpenAI:
**Método 1: Variables de entorno**
```bash
# Establecer proveedor a openai
export CLAUDE_PROVIDER=openai
# Establecer tu clave API
export OPENAI_API_KEY=sk-xxx
# Opcionalmente establecer una URL base personalizada (para servicios compatibles con OpenAI)
export OPENAI_BASE_URL=https://api.deepseek.com # DeepSeek
# export OPENAI_BASE_URL=https://api.moonshot.cn/v1 # Moonshot
# export OPENAI_BASE_URL=http://localhost:11434/v1 # Ollama
# Establecer el modelo
export OPENAI_MODEL=deepseek-chat
# Ejecutar Claude Code
claude
```
**Método 2: Archivo de configuración**
Crea o edita `~/.config/claude-code/settings.json`:
```json
{
"provider": "openai",
"apiKey": "sk-xxx",
"baseUrl": "https://api.openai.com",
"model": "gpt-4-turbo",
"openaiOrganization": "org-xxx",
"openaiProject": "proj-xxx"
}
```
### Notas específicas por proveedor
**OpenAI:**
- Soporta todos los modelos GPT-4 y GPT-3.5
- Soporte completo de herramientas/llamadas a funciones
- Respuestas en streaming
**DeepSeek:**
```bash
export CLAUDE_PROVIDER=openai
export OPENAI_API_KEY=sk-xxx
export OPENAI_BASE_URL=https://api.deepseek.com
export OPENAI_MODEL=deepseek-chat
```
**Ollama (local):**
```bash
export CLAUDE_PROVIDER=openai
export OPENAI_BASE_URL=http://localhost:11434/v1
export OPENAI_MODEL=llama3
```
**Azure OpenAI:**
```bash
export CLAUDE_PROVIDER=openai
export OPENAI_API_KEY=your-azure-key
export OPENAI_BASE_URL=https://your-resource.openai.azure.com
export OPENAI_MODEL=your-deployment-name
```
## Uso
### Modo interactivo
```
claude [flags]
```
| Flag | Descripción |
|------|-------------|
| `--resume` | Reanuda la sesión más reciente |
| `--session ` | Reanuda una sesión específica por ID |
| `--model ` | Sobrescribe el modelo Claude predeterminado |
| `--dark` / `--light` | Fuerza tema oscuro o claro |
| `--vim` | Habilita atajos de teclado Vim |
| `-p, --print ` | No interactivo: ejecuta un solo prompt y sale |
### Comandos slash
Escribe `/` en la entrada para ver todos los comandos disponibles:
| Comando | Descripción |
|---------|-------------|
| `/help` | Muestra todos los comandos |
| `/clear` | Limpia el historial de conversación |
| `/compact` | Resume el historial para reducir uso de contexto |
| `/exit` | Sale de Claude Code |
| `/model` | Cambia el modelo Claude |
| `/theme` | Alterna tema oscuro/claro |
| `/vim` | Alterna modo Vim |
| `/commit` | Genera un mensaje de commit git |
| `/review` | Revisa cambios recientes |
| `/diff` | Muestra el diff actual |
| `/mcp` | Gestiona servidores MCP |
| `/memory` | Muestra archivos CLAUDE.md cargados |
| `/session` | Muestra información de sesión |
| `/status` | Muestra estado de API/conexión |
| `/cost` | Muestra uso de tokens y costo estimado |
## Desarrollo
### Prerrequisitos
- Go 1.21+
- `golangci-lint` (opcional, para linting)
### Compilar y probar
```bash
# Compilar
make build
# Ejecutar todas las pruebas
make test
# Ejecutar pruebas con informe de cobertura
make test-cover
# Vet
make vet
# Lint (requiere golangci-lint)
make lint
# Compilar + probar + vet
make all
```
## Hoja de ruta
Claude Code Go actualmente tiene una paridad de funciones de aproximadamente **65%** con la versión original en TypeScript. Aquí está nuestro plan por fases para llegar a v1.0:
| Fase | Versión | Objetivos clave | Plazo |
|------|---------|-----------------|-------|
| **Phase 1** | v0.2.0 | 🔒 Integración del sistema de permisos, conexión del sistema Hook, base de cobertura de pruebas, refuerzo de CI | +3 semanas |
| **Phase 2** | v0.3.0 | 🔧 Completar las 22 herramientas (actualmente 11), subcomandos CLI, mejoras de comandos slash, herramienta Agent | +3 semanas |
| **Phase 3** | v0.4.0 | 🌐 Proveedores AWS Bedrock y GCP Vertex, transporte MCP WebSocket, sistema de plugins, Feature Flags | +4 semanas |
| **Phase 4** | v0.5.0 | 🚀 Integración LSP, modo Remote/Server, entrada de voz, modo Vim, Extended Thinking, rastreador de costos | +4 semanas |
| **Phase 5** | v1.0.0 | 🎯 Optimización de rendimiento, auditoría de seguridad, documentación completa, lanzamiento multiplataforma | +2 semanas |
### Estado actual
```
Completado: ████████████░░░░░░░░ 65%
✅ Hecho: Motor central, TUI, cliente API (Direct + OpenAI), compactación de contexto,
OAuth, persistencia de sesiones, 11 herramientas, 14 comandos slash
⚠️ En progreso: Proveedores Bedrock/Vertex, MCP WebSocket, herramientas y comandos restantes
❌ Pendiente: Conexión de permisos, conexión de Hooks, LSP, sistema de plugins, modo Remote
```
📋 Consulta la **[hoja de ruta completa](docs/ROADMAP.md)** para desgloses detallados de tareas, diagramas de arquitectura y criterios de finalización.
## Contribuir
¡Las contribuciones son bienvenidas! Por favor lee [CONTRIBUTING.md](CONTRIBUTING.md) antes de enviar un pull request.
Lista de verificación rápida:
- Haz fork del repo y crea una rama de características
- Asegúrate de que `make test` y `make vet` pasen
- Escribe pruebas para la nueva funcionalidad
- Sigue el estilo de código existente (ejecuta `gofmt ./...`)
- Abre un pull request usando la plantilla proporcionada
## Seguridad
Para reportar una vulnerabilidad de seguridad, consulta [SECURITY.md](SECURITY.md). **No** abras un issue público de GitHub para errores de seguridad.
## Licencia
Este proyecto está licenciado bajo la Licencia MIT — consulta [LICENSE](LICENSE) para más detalles.
## Proyectos relacionados
- [claude-code](https://github.com/anthropics/claude-code) — el CLI original en TypeScript
- [anthropic-sdk-go](https://github.com/anthropics/anthropic-sdk-go) — SDK oficial de Go para la API de Anthropic
- [Model Context Protocol](https://modelcontextprotocol.io) — estándar abierto para conectar IA a herramientas