SwissArmyHammer

Gestiona indicaciones de IA como archivos markdown locales.

Documentación

SwissArmyHammer

SwissArmyHammer

Una navaja multiusos para ingeniería impulsada por agentes.

Cada herramienta, en cualquier orden. Es una navaja multiusos, no un pipeline.

CI License Rust MCP


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.

EtapaQué sucedeComando
AyudaRecorre las habilidades, herramientas, subagentes y validadores que sah le da a tu agente/sah-help
PlanificarLee tu especificación, explora el código base, crea un tablero kanban con tareas ordenadas/plan
ImplementarRetoma tareas una por una, escribe código, ejecuta pruebas, marca como completadas/implement
ProbarEjecuta la suite completa, reporta fallos como tareas kanban/test
CoberturaEncuentra código sin probar, crea tareas para las brechas/coverage
RevisarRevisión de código estructurada: los hallazgos se convierten en tareas kanban/review
ConfirmarPrepara los cambios, escribe un mensaje de confirmación convencional/commit
ExplorarBúsqueda semántica de código y consulta de símbolos en más de 25 lenguajes/code-context
DeduplicarEncuentra código casi duplicado y refactorízalo/deduplicate
ShellEjecuta comandos con historial de salida persistente y buscable/shell
VerificarVerifica el trabajo reciente antes de continuar/double-check
LSPDiagnostica 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 diff muestra 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:

HerramientaQué hace
ArchivosLeer, escribir, editar, glob, grep, con soporte de .gitignore
GitRama, confirmación, diff, estado, flujos de trabajo de PR
ShellEjecución segura de comandos con endurecimiento de seguridad
KanbanTableros de tareas respaldados por archivos: tareas, subtareas, dependencias, etiquetas
Búsqueda de códigoBúsqueda semántica impulsada por tree-sitter en más de 25 lenguajes
WebObtener páginas y convertirlas a markdown, buscar en la web
PreguntasPreguntas 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