2026-06-14 14:42:05 +12:00
2026-06-03 18:30:19 +12:00
2026-06-28 12:06:17 +12:00

bridle

An agentic harness for OpenAI-compatible chat completion endpoints.

View it on OpenRouter

Features

Harness user experience:

  • Readline-based CLI with tab completion
    • Coloured output for sections (-Colour, or NO_COLOR env var)
    • Tooltip descriptions on all slash commands
    • Optional Vim mode (<ESC>, then v to visually edit current input line)
    • Press Ctrl+X to edit the current input line in $EDITOR
  • Oneshot mode (-p)
  • Manipulate turn history (/rewind, /turns, /submit)
  • Support interrupting current message or tool call (^C)
  • Session management (-Autosave, manual /save, and resume via -r)
  • Import local files (wildcard match) into prompt (/read)
  • Linux sandboxing with Bubblewrap (-Sandbox), use at own risk
  • Git worktree support (-w)

Special modes:

  • "Autoengineer" (/autoengineer)
    • Implement every task in TODO file and TODO/FIXME comments in codebase.
    • The result is not necessarily very good, but it can run overnight and you can cherry-pick the good parts in the morning.

Model integration with harness:

  • Auto load AGENTS.md and CLAUDE.md files
  • Compaction via context summarization (/compact)
    • Auto compact on client-side token threshold (-MaxContext) or on server-side length exceeded
  • Tool calling
    • Available tools:
      • Local file I/O (read_file, write_file)
      • Auto-healing apply_patch, supporting both unified + V4A formats
      • Command execution (local_shell)
      • Subagents (subagent with fork/fresh context modes)
      • Web search with DuckDuckGo
      • Webpage read in Reader Mode (via go-readability), converting links to navigable markdown
      • Anti-hallucination: write_file/apply_patch must read a file first (or be nonexistent) before writing, and web_read only permits URLs already seen in the conversation
    • MCP support
      • Stdio, Streaming HTTP, or SSE transports
      • Static (-Mcp <name>=<command> / -Mcp <name>=http://url) or dynamic registration (/mcp-connect, /mcp-list, /mcp-disconnect)
      • Dynamic tool discovery
    • User confirmation levels (/checktools or -CheckTools: set to ask default, auto, or yolo)
      • Allow denying with alternative message (?)
    • Trigger tools locally (/tool), optionally submit in next turn

Model settings:

  • Use custom model provider (-Host and -Key)
    • Supports timing metadata from both llama-server and OpenAI/OpenRouter
  • Toggle thinking (/think and /no_think) and set reasoning_effort
  • Customizable system message, default-tuned for Golang development

Usage

# For 128k 131072, for 256k 262144 . Mostly affects pp speed, not tg speed
llama-server -c 262144 --cache-type-k q8_0 --cache-type-v q8_0 -fa on -np 1 -m /srv/llama/Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf &

./bridle

# or
./bridle -CheckTools=yolo -Sandbox -Autosave=auto -w my-worktree

# Use with OpenRouter
./bridle -Host 'https://openrouter.ai/api/' -Key 'sk-or-v1-xxxx' -Model 'openrouter/free'
S
Description
An agentic harness for OpenAI-compatible chat completion endpoints
Readme
495 KiB
Languages
Go 97%
Shell 3%