{"id":47736121,"url":"https://github.com/ba-calderonmorales/agent-harness","last_synced_at":"2026-04-26T00:04:56.703Z","repository":{"id":348571625,"uuid":"1198708522","full_name":"BA-CalderonMorales/agent-harness","owner":"BA-CalderonMorales","description":"A clean-room Go implementation of agentic coding harness patterns, derived from analyzing production AI agent architectures. Built for learning, extending, and teaching how to build coding agents like Claude Code, OpenCode, and Gemini CLI. Supports OpenRouter and Anthropic out of the box.","archived":false,"fork":false,"pushed_at":"2026-04-07T12:48:23.000Z","size":46567,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-08T03:02:56.075Z","etag":null,"topics":["agent-harness","ai-agent","anthropic","cli","coding-agent","go","golang","llm","mcp","openrouter","terminal-agent","tool-use"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BA-CalderonMorales.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/supported_models.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-01T17:22:19.000Z","updated_at":"2026-04-06T20:21:08.000Z","dependencies_parsed_at":"2026-04-08T03:00:35.867Z","dependency_job_id":null,"html_url":"https://github.com/BA-CalderonMorales/agent-harness","commit_stats":null,"previous_names":["ba-calderonmorales/agent-harness"],"tags_count":53,"template":false,"template_full_name":null,"purl":"pkg:github/BA-CalderonMorales/agent-harness","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BA-CalderonMorales%2Fagent-harness","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BA-CalderonMorales%2Fagent-harness/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BA-CalderonMorales%2Fagent-harness/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BA-CalderonMorales%2Fagent-harness/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BA-CalderonMorales","download_url":"https://codeload.github.com/BA-CalderonMorales/agent-harness/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BA-CalderonMorales%2Fagent-harness/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31686141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-harness","ai-agent","anthropic","cli","coding-agent","go","golang","llm","mcp","openrouter","terminal-agent","tool-use"],"created_at":"2026-04-02T22:40:32.171Z","updated_at":"2026-04-18T10:13:51.356Z","avatar_url":"https://github.com/BA-CalderonMorales.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# agent-harness\n\nA clean-room, pattern-derived agent harness for building coding agents.\n\n\u003e **Note:** This project is in early development. We are iterating fast. Best used in Coder, DevPod, or GitHub Codespaces for a consistent environment.\n\n## Purpose\n\n`agent-harness` captures architectural patterns from production agentic coding tools:\n\n1. Core agent loop with streaming responses\n2. Tool dispatch with permission controls\n3. Two execution modes: interactive (prompt for each command) and yolo (auto-approve with visibility)\n4. Secure credential storage with AES-256-GCM encryption\n5. Session management with auto-save\n6. Layered configuration (user / project / local)\n7. Slash command system\n\n## Quick Start\n\n### Installation\n\n**Linux/macOS:**\n```bash\ncurl -fsSL https://raw.githubusercontent.com/BA-CalderonMorales/agent-harness/main/scripts/install.sh | bash\n```\n\n**Termux (Android):**\n```bash\ncurl -fsSL https://raw.githubusercontent.com/BA-CalderonMorales/agent-harness/main/scripts/install-termux.sh | bash\n```\n\n**Manual:**\n```bash\ngo install github.com/BA-CalderonMorales/agent-harness/cmd/agent-harness@latest\n```\n\n### Usage\n\n```bash\n# Start the TUI\nagent-harness\n\n# Or use the short alias (after setup)\nah\n```\n\n**Key Controls:**\n- `Tab` / `Shift+Tab` - Switch views (Chat, Sessions, Settings)\n- `ESC` - Cancel current agent execution or exit mode\n- `?` - Show help (in normal mode)\n- `/` - Open command palette (when input is empty)\n- `Ctrl+C` - Quit\n\n**Execution Modes:**\n- **Interactive** (default) - Prompts you before executing shell/write/edit commands\n- **Yolo** - Auto-approves commands but shows what is happening in the UI\n\nSwitch modes in Settings or with `/mode` commands.\n\n## Architecture\n\n```\ncmd/agent-harness/          # CLI entrypoint\ninternal/\n  agent/                    # Core loop + streaming executor\n  approval/                 # Command approval system\n  commands/                 # Slash command registry\n  config/                   # Layered config + secure storage\n  llm/                      # LLM client abstraction\n  permissions/              # Permission stack\n  state/                    # Session management\n  tools/                    # Tool descriptor + registry\n  tui/                      # Terminal UI (Bubble Tea)\npkg/\n  bash/                     # Shell execution\n  git/                      # Git operations\n```\n\n## Documentation\n\n- [Architecture](docs/architecture.md) - Pattern implementations\n- [Command Approval](docs/command-approval.md) - How the approval system works\n- [Edge Cases](docs/edgecases.md) - Non-obvious behaviors\n\n## Building from Source\n\n```bash\ngo build -o agent-harness ./cmd/agent-harness\n```\n\n## License\n\nMIT\n\n## Acknowledgments\n\nThis project is inspired by the architectural patterns found in [terminal-jarvis](https://github.com/BA-CalderonMorales/terminal-jarvis).\n\nThe TUI design patterns are inspired by [golazo](https://github.com/0xjuanma/golazo) by [Juan Manuel](https://github.com/0xjuanma).\n\nAdditional TUI inspiration from the [awesome-tuis](https://github.com/rothgar/awesome-tuis) collection.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fba-calderonmorales%2Fagent-harness","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fba-calderonmorales%2Fagent-harness","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fba-calderonmorales%2Fagent-harness/lists"}