An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          


Claude Code Go Logo

Claude Code Go


🤖 Reimplementación en Go de Claude Code — Asistente de programación con IA en tu terminal


Versión de Go
Go Report Card
Cobertura
Go Reference
CI
Release
Licencia
PRs Welcome


English
简体中文
日本語
한국어
Español
Français

---


Claude Code Go - Sesión Interactiva


TUI interactiva con lectura de archivos y visualización de pensamiento en tiempo real


Claude Code Go - Análisis de Proyecto


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