v0.4.1 · código abierto — local-first · sin telemetría

Depura tus APIs y bases de datos en un único archivo markdown.

httui es un editor markdown con bloques ejecutables — peticiones HTTP y SQL (PostgreSQL, MySQL, SQLite). Cada runbook es documentación y herramienta de troubleshooting, versionado en git.

rollout-v2.3.md — httui
httui
acme payments rollout-v2.3.md
local
staging
prod
Search blocks, vars, schema… ⌘K
RMT
main
Run all
Files
runbooks
payments
rollout-v2.3.md
rollback.md
incident-2026-03-19.md
onboarding
data-fixes.md
scratch
ad-hoc.md
shared / team
Connections
pg · payments@staging 18ms
pg · payments@prod PROD 41ms
mongo · audit 22ms
redis · cache 88ms
API · payments 142ms
Variables — staging
BASE_URL https://api.staging.acme.dev
TENANT_ID tnt_8f2a91
ADMIN_TOKEN ••••••••••••mB9k
PG_DSN postgres://app@db-staging…
rollout-v2.3.md
rollback.md
ad-hoc.md
runbooks / payments / rollout-v2.3.md · edited há 4 min by rafael 10 blocks · 4 ran · 1 pending · auto-capture
runbooks / payments / rollout-v2.3.md draft · 4 unsaved edits

Rollout — Payments v2.3 → staging

R rafael · edited há 4 min · 10 blocks · main +3 ~1 · last run 14:23 — all green

Deploy do novo provider de cartão (stripe_v2) para o tenant acme-payments em staging. Antes de promover para prod, validar que a config foi propagada, que payments_route não tem rotas órfãs, e que a latência do stream de captura fica abaixo de 800ms.

PRÉ-FLIGHT — 4 itens
config do tenant atualizada em tenants.config
0 registros órfãos em payments_route
subscrever stream WS por 30s
rollout_pct ≤ 25 antes de prod
TAGS
#rollout
#payments
#staging
#breaking-change
1 Sanidade — health check do gateway
02
ran 14:22:08 200 · 142ms
GET {{BASE_URL}}/v2/health
{
"status": "ok", "version": "2.3.0-rc4",
"deps": { "db": "ok", "kafka": "degraded" }
}
2 Autenticar como admin do tenant
04
ran 14:22:14 201 · 318ms
POST {{BASE_URL}}/v2/auth/admin
Authorization: Bearer {{ADMIN_TOKEN}}
X-Tenant: {{TENANT_ID}}
captured → SESSION_ID = ses_01HZ4RTQ8VK7…
3 Verificar rotas órfãs no banco
06 SQL
pg · payments@staging 3 rows · 47ms
SELECT r.id, r.tenant_id, r.provider_key
FROM payments_route r
LEFT JOIN payment_provider p ON p.key = r.provider_key
WHERE p.key IS NULL;
Outline
Schema
History
Comments 2
Database payments
pg · payments@staging · 18ms
public 5
payment_provider 12
payments_route 4,318
id text
tenant_id text
provider_key text
fallbacks text[]
rollout_pct int4
created_at timestamptz
updated_at timestamptz
tenants 821
captures 1,284,913
audit_log 9,123,402
billing 3
History 6
14:24:07 WS captures 14 msgs
14:23:01 SELECT … rotas órfãs 3 rows · 47ms
14:22:14 POST /v2/auth/admin 201 · 318ms
14:22:08 GET /v2/health 200 · 142ms
Ask httui ⌘J
Por que kafka está degraded?
main · 3 changes connected · staging pg 18ms api 142ms Ln 47, Col 12 UTF-8 chained httui 0.4.2
Código abierto · Licencia MIT

Construido al aire libre. Tócalo, hazle fork, manda un PR.

15
Estrellas en GitHub
github.com/httuicom/httui
2
contribuyentes
creciendo al aire libre
MIT
licencia
sin ataduras
v0.4.1
última release
release pendiente
Un archivo · varios bloques

Markdown que se ejecuta.

Cada bloque es ejecutable: peticiones HTTP y consultas SQL (PostgreSQL, MySQL, SQLite). Las capturas de un bloque se vuelven variables del siguiente, encadenando todo el flujo dentro de un único .md.

1. Verify shadow traffic
Confirm payments-router is mirroring 5% of requests in staging.
POST {{api}}/v2/payments ● 201 · 218ms
{
"id": "pay_01H8XK...",
"provider": "stripe_v2",
"shadow": true
}
captured: payment_id = pay_01H8XK…
SQL pg · payments@staging ● 1 row · 14ms
SELECT status, provider FROM payments
WHERE id = {{payment_id}}
Nativo de base de datos

Schema explorer junto al editor.

Conecta PostgreSQL, MySQL y SQLite. Navega tablas con foreign keys, índices y row count. EXPLAIN ANALYZE en forma de árbol muestra dónde gasta tiempo tu query.

SCHEMA · payments
▾ public 4 tables
▸ payments 84.2k
▾ payments_route 4.3k
id uuid
provider_key text
tenant_id uuid
active bool
created_at timestamptz
▸ payment_provider 12
▸ tenants 284
▾ analytics 1 table
▸ events 12.4M
Result · 3 rows · 14ms EXPLAIN
#idprovider_keytenantactivecreated_at
1rt_4f2astripe_v2acmetrue2026-04-24 14:08
2rt_7ce1stripe_v2acmetrue2026-04-24 13:51
3rt_b08dadyen_v1acmefalse2026-04-23 09:12
EXPLAIN ANALYZE
Index Scan using idx_route_provider · 0.42..18.7 · 3 rows · 0.21ms
Nativo de git · diffeable

Versionado. Revisable. Compartible.

Los runbooks son .md en tu repo. Revisión por pull request como cualquier código. Diff entre runs muestra qué cambió en la respuesta.

main · 3 changes · runbooks/payments/rollout-v2.3.md +18 −4
@@ -42,7 +42,11 @@ ## 3. Verify latency
- ```http GET {{api}}/v2/health
- expect: status === 200
- ```
+ ```http POST {{api}}/v2/payments
+ Authorization: Bearer {{user_token}}
+ Content-Type: application/json
+
+ { "amount": 1200, "currency": "BRL" }
+
+ expect: status === 201
+ expect: time < 500ms
+ capture: payment_id = $.id
+ ```
httui-lang · LSP

Úsalo en cualquier lugar.

El formato de los bloques .httui es un lenguaje de verdad con grammar tree-sitter y servidor LSP. Los runbooks reciben autocomplete, hover y go-to-definition de referencias — dentro de cualquier editor que hable LSP.

VS CodeNeovimZedHelixIntelliJSublime

Integrado en el app de escritorio · binario standalone para terminales · publica la grammar en cualquier registry de paquetes.

smoke-test.httui
# Smoke test
http alias=login timeout=5000
POST https://api.example.com/auth/login
Content-Type: application/json

{ "user": "alice", "pwd": "{{SECRET}}" }

http alias=me
GET https://api.example.com/me
Authorization: Bearer {{login.body.token}}

# expect:
#   status == 200
#   time < 500ms
Instalar

Gratis para siempre. Tuyo para hacer fork.

Una línea. Sin registro, sin tarjeta, sin telemetría.

~/projects · zsh
$ curl -fsSL https://httui.com/install.sh | sh
✓ descargando la última release…
✓ httui instalado → /Applications/httui.app
$ open /Applications/httui.app
Homebrew
brew tap httuicom/httui
brew install --cask httui
GitHub Releases
.dmg · .msi · .exe
.deb · .rpm · .AppImage
{ } Desde el código
make install-deps
cargo tauri build

Builds GUI para macOS · Linux · Windows en GitHub releases. El build de macOS no está firmado — el script de install y el cask de Homebrew limpian la cuarentena de Gatekeeper; el auto-update interno lo mantiene actualizado.

Deja de depurar en cinco pestañas.
Empieza a escribir runbooks en su lugar.

Código abierto, licencia MIT. curl -fsSL https://httui.com/install.sh | sh y es tuyo.

Empezar Leer los docs