Integration environment for AI agents in software development designed for local models
  • Go 99.6%
  • Shell 0.4%
Find a file
2026-08-26 13:39:50 -07:00
.forgejo/workflows fix(ci): use direct repository issues endpoint instead of search API to prevent HTTP 422 2026-08-26 13:39:50 -07:00
cmd/rony fix(sessions): fix session creation/resume, add RAG memory tools 2026-07-06 00:04:46 -07:00
configs chore(config): presence_penalty 1.5 on the main local profile 2026-07-15 14:51:44 -07:00
docs feat(dist): add distribution MVP (goreleaser + install script) 2026-07-30 21:54:38 -07:00
internal feat(dist): add distribution MVP (goreleaser + install script) 2026-07-30 21:54:38 -07:00
.gitignore chore: ignore test/ artifacts, drop stray test_document.md 2026-07-12 16:13:49 -07:00
.goreleaser.yaml feat(dist): add distribution MVP (goreleaser + install script) 2026-07-30 21:54:38 -07:00
AGENTS.md feat(dist): add distribution MVP (goreleaser + install script) 2026-07-30 21:54:38 -07:00
go.mod feat: migrate TUI to bubbletea v2, lipgloss v2, bubbles v2 2026-07-10 10:49:52 -07:00
go.sum feat: migrate TUI to bubbletea v2, lipgloss v2, bubbles v2 2026-07-10 10:49:52 -07:00
install.sh feat(dist): add distribution MVP (goreleaser + install script) 2026-07-30 21:54:38 -07:00
LICENSE chore: initial scaffold with design docs 2026-06-28 16:07:26 -07:00
README.es.md feat(cli): show /llm models as gradient pills in the right-hand sidebar 2026-07-30 14:42:50 -07:00
README.md feat(cli): show /llm models as gradient pills in the right-hand sidebar 2026-07-30 14:42:50 -07:00
TODO.md feat(dist): add distribution MVP (goreleaser + install script) 2026-07-30 21:54:38 -07:00

Rony Harness — AI agent harness for software development

🌐 Language: English | Español

🖥️ Interactive TUI that turns LLMs into agents that execute code.

Rony Harness (binary: rony) is an AI agent harness for terminal. It lets you converse with an LLM (Claude, GPT, Ollama, llama.cpp) and give it real tools (read files, write, run bash, grep, etc.) so it completes software tasks autonomously.

Features

  • 💬 Interactive chat with Bubbletea TUI
  • 🔧 17 real tools: file/shell/web (read, write, edit, glob, grep, bash, webfetch), sub-agent delegation (delegate), plan persistence (save_plan/update_plan), RAG memory (6 tools), and a personal spellcheck dictionary
  • Approval gates before destructive operations, plus a bash allow/deny sandbox — no filesystem sandbox yet (see docs/architecture.md)
  • 🐕 Rony's persona, with 4 config-driven agent modes (Normal/Build/Plan/Chat, Tab to cycle)
  • 📋 AGENTS.md per project for custom conventions
  • 💾 Persistent sessions in SQLite with resume/list/delete/export, browsable via /sessions
  • 📎 File attachments (@ mentions) and a right-hand sidebar — spellcheck + translation while chatting, or the local server list + info while the /llm panel is open
  • 🖥️ /model and /llm panels to switch providers and manage a local llama.cpp server

🚀 Quick start

⚠️ go install .../rony@latest doesn't currently work: rony-llm-agent is an untagged sibling module with no published version (see Build from source). Until it's tagged and published, build from source instead.

# Configure provider
export ANTHROPIC_API_KEY=sk-ant-...

# Run (after building, see below)
rony chat

# In a project with AGENTS.md
cd my-project/
rony chat

📚 Documentation

  • Architecture doc — As-built technical reference
  • Phase 2 — Not-yet-built features (Distribution: GoReleaser, homebrew, install)

📌 Advanced features of the library (MCP, full RAG, Skills, Sub-agents, Observability, etc.) are in rony-llm-agent/docs/phase2.md.

🏗️ Architecture

This project is only the TUI CLI. All agent logic lives in the rony-llm-agent library, which provides:

  • Agent loop
  • LLMClient interface (OpenAI, Anthropic, Ollama, llama.cpp)
  • RAG / memory
  • Persona system
  • Generic tool registry

rony-harness/ adds:

  • Bubbletea TUI
  • Slash commands (/help, /sessions, /model, /llm, /tools, etc. — see docs/architecture.md for the full list)
  • Software-dev-specific tools (read, bash, grep, delegate, memory, plans, etc.)
  • Interactive approval gates and a bash sandbox (allow/deny patterns)

🛠️ Build from source

⚠️ rony-llm-agent isn't a versioned go.mod dependency (it has no git tags) — it's resolved as a sibling module through a Go workspace. Building this repo standalone requires cloning rony-llm-agent next to it and a go.work that uses both. See docs/architecture.md §8.1.

git clone https://github.com/VictorVargas/rony-harness.git
git clone https://github.com/VictorVargas/rony-llm-agent.git
cd rony-harness

go work init . ../rony-llm-agent   # or reuse an existing go.work

go build -o bin/rony ./cmd/rony
./bin/rony version

📦 Distribution

See docs/phase2.md §1 — GoReleaser, homebrew tap, install script.

🤝 Contributing

Currently solo development. PRs welcome once the codebase is more mature.

📄 License

MIT — see LICENSE.