A httpbun.com-compatible HTTP testing service built with Bun and Hono.
Kulala Echo aims for httpbun parity (excluding /run and /llm/*), plus WebSocket, gRPC, and OIDC extensions used by kulala.nvim.
bun install --frozen-lockfile
bun run devOpen http://localhost:3002/ for Swagger UI.
| Service | Default |
|---|---|
| HTTP / WebSocket | PORT (default 3002) |
| gRPC Echo | GRPC_PORT (default 50051) |
bun run dev # hot-reload server
bun test # unit + route tests
bun run typecheck # tsc --noEmit
bun run lint # biome lint
bun run format # biome format --write
bun run check # biome check
bun run build # bundle to dist/- WebSocket -
ws://host/wsechoes messages; optional?delay=seconds; idle connections close after 60s (?idle=to override, max 120) - gRPC -
Echoservice (proto/echo.proto): unary + streaming RPCs onGRPC_PORT, with server reflection (grpcurl -plaintext localhost:50051 list) - OIDC -
/.well-known/openid-configuration,/oidc/jwks,id_token+refresh_tokenwhen OAuth2scopeincludesopenid(token refresh viagrant_type=refresh_token) - Images -
/imageserves the mistweaverco logo
docker run -d --restart=always \
--name kulala-echo \
-e PORT=3002 \
-e GRPC_PORT=50051 \
-p 3002:3002 \
-p 50051:50051 \
ghcr.io/mistweaverco/kulala-echo:latest
docker buildx build --push \
-t ghcr.io/mistweaverco/kulala-echo:latest \
-f Dockerfile .