killami-code
v0.1.0
Published
Agente de código en la terminal, nacido en el Caribe colombiano.
Maintainers
Readme
Killami Code
Un agente de código que corre en tu terminal. Nace en el Caribe colombiano: se abre con sol, palma y mar, te suelta una frase costeña y se pone a programar en el repo donde estés.
No es un chatbot. Es un loop. Tú le das una tarea, el modelo pide herramientas, Killami las ejecuta (con tu permiso cuando toca el disco) y le devuelve el resultado hasta que termina.
Este repo es el agente y, a la vez, un lugar para armar un agente de código desde aquí: loop, tools, permisos, memoria, compactación, modelos. Sin frameworks de orquestación. TypeScript, claro, y MIT.
Qué hace
- Lee, busca y lista archivos del workspace
- Edita y escribe código
- Corre comandos en la carpeta actual
- Pregunta antes de
write,editobash - Recuerda el proyecto si existe un
KILLAMI.mdo unAGENTS.md - Compacta el historial cuando la sesión se pone pesada
- Cambia de modelo al vuelo (
sonnet,opus,fable,haiku)
El workspace es el directorio desde el que lanzas killami, no la carpeta de este repo.
Requisitos
- Node 22 o más
- Una API key de Anthropic
Instalar
npm install -g killami-codeO sin instalarlo: npx killami-code. El comando sigue siendo killami (también vale killami-code).
Necesitas Node 22+ y una API key de Anthropic. Ponla en ~/.killami/.env (para usarlo en cualquier carpeta) o en el .env del proyecto:
mkdir -p ~/.killami
echo 'ANTHROPIC_API_KEY=tu_key' > ~/.killami/.envLuego, en el repo donde vas a trabajar:
cd ~/tu-proyecto
killamiPara desarrollar este repo: npm install y npm start. Si cambias el código, npm run build actualiza el bin.
Uso
Escribes en el prompt. /exit cierra.
> arregla el test que está fallando en src/auth.tsMientras piensa ves un spinner (Un momentico…). El texto sale en streaming. Si va a escribir o a correr un comando:
· edit src/auth.ts
src/auth.ts · cambia un bloque
s sí, solo esta vez
n no, no lo toques
a sí, y no preguntes más en esta sesión
¿Qué hago?read, ls, grep y glob no preguntan. Solo miran.
Si el turno quedó mal:
> /undo
undo: restauré src/auth.tsEso restaura los archivos que write y edit tocaron en el último prompt. El chat no se borra. bash no entra en el checkpoint: un rm no se deshace así. /undo otra vez vuelve al turno anterior (hasta 50).
Modelos
Hoy todos son de Anthropic. Default: Sonnet 4.5.
killami --model haiku
killami -m fableO en la sesión:
/model
/model sonnet
/model opus
/model fable| alias | modelo | para qué |
|---|---|---|
| sonnet | Sonnet 5 | programar, el equilibrio |
| sonnet-4.5 | Sonnet 4.5 | el default |
| opus | Opus 5 | más capaz, más caro |
| fable | Fable 5.1 | razonar largo |
| haiku | Haiku 4.5 | rápido y barato |
También puedes poner KILLAMI_MODEL=sonnet en el .env. Prioridad: --model → KILLAMI_MODEL → ANTHROPIC_MODEL → Sonnet 4.5.
Memoria del proyecto
En la raíz del repo que estés editando, crea un KILLAMI.md (o un AGENTS.md). Killami lo lee cada vez que piensa: cómo está armado el código, qué no tocar, convenciones.
Si le pides que se acuerde de algo, lo anota ahí (y te pide permiso para escribirlo). Eso es memoria del repo. El historial de la charla es otra cosa: si se pone largo, se compacta solo.
Cómo está armado
src/index.ts CLI, banner, /model, /undo
src/agent/loop.ts modelo → tools → resultado → repeat
src/agent/compact.ts resume lo viejo, deja la cola
src/checkpoint.ts fotos de write/edit por turno
src/tools.ts read write edit bash grep glob ls
src/permissions.ts s / n / a
src/memory.ts KILLAMI.md y AGENTS.md
src/models.ts catálogo y alias
src/banner.ts el dibujo de la costa
src/spinner.ts “está pensando”
test/ tests del harness
evals/ tareas reales contra el modeloEl núcleo cabe en el loop. Lo demás es el harness: que no se escape del workspace, que pregunte antes de romper algo, que no se ahogue de tokens.
Tests y evals
Los tests prueban el harness. No gastan API key.
npm testLos evals sí llaman al modelo: un repo temporal, una tarea, ¿el archivo quedó como se pedía?
npm run evalHay cuatro: cambiar un greeting, crear sum, arreglar double, y respetar un KILLAMI.md que bloquea un archivo. Usan KILLAMI_EVAL_MODEL (default: haiku).
CI
En cada push y pull request, GitHub Actions corre typecheck, tests y build.
Si el repo tiene el secret ANTHROPIC_API_KEY, el job de evals también corre. Sin el secret, ese job se omite (sale “Evals omitidos”) y el CI no se pone rojo.
Licencia
MIT © Anuar Harb
