SwissArmyHammer
Gestiona indicaciones de IA como archivos markdown locales.
Documentación
SwissArmyHammer
Una navaja multiusos para ingeniería impulsada por agentes.
Cada herramienta, en cualquier orden. Es una navaja multiusos, no un pipeline.
Los agentes de codificación con IA son potentes, pero sin estructura, divagan. Pierden el rastro del plan. Se saltan las pruebas. Escriben código que funciona pero no está revisado. Olvidan lo que estaban haciendo a mitad de camino.
Otras herramientas intentan solucionar esto encerrándote en un pipeline rígido: discutir, luego planificar, luego ejecutar, luego verificar, luego publicar. En ese orden. ¿Te saltas un paso? Mala suerte.
El trabajo real no es un pipeline. A veces implementas tres cosas y luego las revisas todas a la vez. A veces escribes las pruebas primero. A veces te saltas la revisión en un arreglo rápido y simplemente lo publicas.
SwissArmyHammer te da un tablero kanban y un conjunto de herramientas afiladas. Tú decides cuándo planificar, implementar, probar, revisar y confirmar. Cada herramienta está siempre disponible. Tú eliges la adecuada para el momento. Sin ceremonias de sprint. Sin puntos de historia. Sin teatro empresarial. Solo herramientas para personas que publican.
┌──────────┐
│ /plan │ Break work into kanban tasks
└────┬─────┘
│ ┌──────────────────────────┐
▼ │ Any tool, any time, │
┌──────────┐ │ any order. │
│/implement│ │ │
└────┬─────┘ │ /test after /implement? │
│ │ /review before /commit? │
▼ │ /implement three tasks │
┌──────────┐ │ then /review them all? │
│ /test │ │ │
└────┬─────┘ │ Your call. │
│ └──────────────────────────┘
▼
┌──────────┐ ┌──────────┐
│ /review │────▶│ /commit │
└──────────┘ └──────────┘
Funciona con Claude Code, Cursor, Windsurf o cualquier agente compatible con MCP.
Comienza en 30 segundos
Entra en el directorio de tu proyecto y ejecuta:
cd <your project directory>
brew install swissarmyhammer/tap/swissarmyhammer-cli
sah init
Eso es todo. Tu agente ahora tiene habilidades, herramientas y flujos de trabajo.
Luego abre tu agente y pide el recorrido:
> /sah-help
El agente enumera cada habilidad, herramienta, subagente y validador que sah le da, y te dice cuál usar para qué. Dale un tema para aprender sobre una cosa:
> /sah-help how do I plan
> /sah-help commit
Dos formas de planificar
La habilidad /plan es la puerta de entrada a SwissArmyHammer. Funciona de dos maneras:
Entrégale una especificación
Escribe tus requisitos en un archivo markdown y apunta al agente hacia él:
> /plan my-feature-spec.md
El agente lee tu especificación, explora el código base para entender lo que existe, y luego crea un tablero kanban con tareas ordenadas, subtareas, criterios de aceptación y requisitos de prueba. Cada tarea tiene suficiente contexto para que el agente (o un compañero de equipo) pueda retomarla e implementarla sin volver a leer la especificación.
Tu especificación puede ser tan simple o detallada como quieras: algunos puntos, un PRD completo o cualquier cosa intermedia. El agente completa los detalles de implementación leyendo tu código real.
O simplemente habla de ello
No necesitas un archivo de especificación. Inicia una conversación y planifica de forma interactiva:
> I want to add OAuth2 support to the API
El agente entra en modo de planificación, hace preguntas aclaratorias, explora tu código base y construye el tablero kanban de forma incremental mientras discutes. Puedes dirigir el plan en tiempo real:
> Split that auth task into separate tasks for Google and GitHub providers
> Add a task for the token refresh flow -- we'll need that too
> Actually, let's do GitHub first and Google in a follow-up PR
El plan evoluciona a través de la conversación. Las tareas se agregan, dividen, fusionan y reordenan según tus comentarios. Cuando estés satisfecho, di "adelante" y el agente comienza a implementar.
Luego ejecuta
De cualquier manera, una vez que el plan está en el tablero:
> /implement # Do one kanban task at a time, with context-aware code editing and testing
> /finish # RalphLoop one task — or a whole tag/project — through implement → test → review → done. Go for a walk with your 🦮.
> /test # Run tests, report failures as tasks
> /test-loop # RalphLoop test→fix→test until green
> /review # Code review -- findings become new tasks
> /commit # Clean conventional commit
Lo que obtienes
El problema con otros enfoques
Las herramientas de pipeline fuerzan una secuencia rígida: discutir, planificar, ejecutar, verificar, publicar. Cada tarea pasa por la misma ceremonia, ya sea una reescritura de tres meses o un arreglo de una línea. No puedes saltarte pasos, no puedes reordenarlos, no puedes adaptarte a cómo fluye realmente el trabajo.
SwissArmyHammer es diferente. Cada etapa del ciclo de vida del desarrollo de software es una herramienta independiente. Usa lo que necesites, salta lo que no. El tablero kanban es el estado compartido, no un pipeline secuencial.
| Etapa | Qué sucede | Comando |
|---|---|---|
| Ayuda | Recorre las habilidades, herramientas, subagentes y validadores que sah le da a tu agente | /sah-help |
| Planificar | Lee tu especificación, explora el código base, crea un tablero kanban con tareas ordenadas | /plan |
| Implementar | Retoma tareas una por una, escribe código, ejecuta pruebas, marca como completadas | /implement |
| Probar | Ejecuta la suite completa, reporta fallos como tareas kanban | /test |
| Cobertura | Encuentra código sin probar, crea tareas para las brechas | /coverage |
| Revisar | Revisión de código estructurada: los hallazgos se convierten en tareas kanban | /review |
| Confirmar | Prepara los cambios, escribe un mensaje de confirmación convencional | /commit |
| Explorar | Búsqueda semántica de código y consulta de símbolos en más de 25 lenguajes | /code-context |
| Deduplicar | Encuentra código casi duplicado y refactorízalo | /deduplicate |
| Shell | Ejecuta comandos con historial de salida persistente y buscable | /shell |
| Verificar | Verifica el trabajo reciente antes de continuar | /double-check |
| LSP | Diagnostica e instala servidores de lenguaje faltantes | /lsp |
Estas herramientas se conectan en bucles. /plan crea tareas. /implement las trabaja. /review encuentra problemas y los agrega como elementos de lista de verificación en la tarea fuente. /finish ejecuta implementar → probar → revisar en un bucle hasta que cada tarea llega a done. /coverage encuentra código sin probar y crea tareas de prueba. Es un bucle cerrado, pero tú controlas el orden.
Gestión de contexto
El mayor cuello de botella para los agentes de IA no es la inteligencia, es el contexto. La salida larga de pruebas revienta la ventana de contexto. El agente no puede encontrar la función que necesita. Vuelve a leer archivos que ya escaneó. SwissArmyHammer resuelve esto en todos los niveles.
Shell inteligente (no solo bash -c)
El shell integrado no es un envoltorio delgado alrededor de subprocess exec. Es un shell virtual con historial persistente, gestión de procesos y salida buscable:
- La salida de cada comando se almacena e indexa, incluso si la respuesta se truncó para ahorrar tokens
- Búsqueda semántica en toda la salida: pregunta "encuentra el error de autenticación" y coincide con "403 prohibido" y "inicio de sesión denegado"
- Grep regex en el historial:
error\[E\d+\]encuentra cada error del compilador de Rust de todos los comandos que has ejecutado - Recuperación por rango de líneas: ¿la salida se truncó? Obtén las líneas 450-500 del comando #3 sin volver a ejecutarlo
- Límites de salida configurables: devuelve 50 líneas, 200 o cero (dispara y olvida). La salida completa siempre se guarda para después
Esto significa que tu agente puede ejecutar cargo test con 10,000 líneas de salida, obtener un resumen de 50 líneas y luego buscar quirúrgicamente el fallo, sin quemar tokens de contexto en el desplazamiento.
Inteligencia de código automática (tree-sitter + LSP)
SwissArmyHammer indexa automáticamente tu código base usando tree-sitter y LSP. Sin configuración, sin preparación manual: abre un proyecto y comienza a analizar en segundo plano.
- Búsqueda de símbolos: salta a cualquier definición con coincidencia difusa (
MyStruct::new,process_req, nombres parciales) - Recorrido del grafo de llamadas: ¿quién llama a esta función? ¿Qué llama ella? Traza el flujo de ejecución entre archivos
- Análisis de radio de impacto: antes de cambiar
validate_token, ve cada archivo y función afectados transitivamente - Diffs semánticos:
git diffmuestra cambios de línea; sah muestra cambios a nivel de entidad (Agregado, Modificado, Eliminado, Movido, Renombrado) - Más de 25 lenguajes: Rust, Python, TypeScript, Go, Java, C/C++, Ruby, Swift, Kotlin y más
Esto es lo que permite que /plan realmente entienda tu código base antes de crear tareas, y lo que permite que /review detecte problemas arquitectónicos reales en lugar de solo detalles de estilo.
El conjunto
SwissArmyHammer son tres herramientas que trabajan juntas:
sah -- Habilidades y herramientas para cualquier agente
El núcleo. Un servidor MCP que le da a tu agente todo lo que necesita:
Herramientas: los bloques de construcción:
| Herramienta | Qué hace |
|---|---|
| Archivos | Leer, escribir, editar, glob, grep, con soporte de .gitignore |
| Git | Rama, confirmación, diff, estado, flujos de trabajo de PR |
| Shell | Ejecución segura de comandos con endurecimiento de seguridad |
| Kanban | Tableros de tareas respaldados por archivos: tareas, subtareas, dependencias, etiquetas |
| Búsqueda de código | Búsqueda semántica impulsada por tree-sitter en más de 25 lenguajes |
| Web | Obtener páginas y convertirlas a markdown, buscar en la web |
| Preguntas | Preguntas y respuestas basadas en elicitación para capturar decisiones |
Habilidades: los flujos de trabajo que usan esas herramientas:
Las habilidades son archivos markdown. Le enseñan a tu agente cómo hacer las cosas, no solo qué hacer. Cada habilidad define un proceso paso a paso, y un tipo de agente especializado lo ejecuta. Esto es lo que convierte a un LLM genérico en un ingeniero enfocado.
También puedes escribir tus propias habilidades: coloca un SKILL.md en .sah/skills/my-skill/ y tu agente lo recoge automáticamente.
Arquitectura
Todo es markdown. Habilidades, validadores, flujos de trabajo, agentes: todo markdown con frontmatter YAML y plantillas Liquid. Sin formatos propietarios, sin bases de datos, sin bloqueo en la nube. Todo vive en tu repositorio o en tu directorio de inicio, totalmente controlable por versiones.
~/.sah/
skills/ # Installed skills (markdown)
validators/ # Installed validators (markdown)
agents/ # Agent modes (markdown)
workflows/ # State machine workflows (markdown + Mermaid)
Las anulaciones a nivel de proyecto van en .sah/ en tu repositorio. La configuración del proyecto gana sobre la configuración del usuario.
El servidor MCP en sí es un único binario de Rust: inicio rápido, sin dependencias de tiempo de ejecución, sin Docker, sin servicios en la nube. Se ejecuta localmente junto a tu agente.
¿Por qué SwissArmyHammer?
Para desarrolladores individuales: Tu agente se vuelve dramáticamente más capaz. En lugar de cuidarlo en cada paso, le entregas una especificación y te alejas. Planifica, implementa, prueba, revisa y confirma, siguiendo el mismo proceso de ingeniería que tú seguirías.
Para equipos: Proceso de ingeniería consistente en el agente de cada desarrollador. Las mismas habilidades, los mismos validadores, los mismos controles de calidad. Instala una vez mediante mirdan, y el agente de cada miembro del equipo funciona de la misma manera.
Licencia
MIT OR Apache-2.0