GitHub - vedicreader/ramabana: rama's arrow. a harness that does not miss · GitHub
/" data-turbo-transient="true" />
Skip to content
Search/
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading. Please reload this page.
vedicreader
ramabana
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>108 Commits<br>108 Commits
.agents/skills
.agents/skills
.claude
.claude
.github/workflows
.github/workflows
docs/superpowers
docs/superpowers
media
media
nbs
nbs
ramabana
ramabana
scripts
scripts
tests
tests
.gitignore
.gitignore
AGENTS.md
AGENTS.md
CHANGELOG.md
CHANGELOG.md
CLAUDE.md
CLAUDE.md
LICENSE
LICENSE
MANIFEST.in
MANIFEST.in
README.md
README.md
pyproject.toml
pyproject.toml
uv.lock
uv.lock
View all files
Repository files navigation
ramabana
The brain of a coding agent: policy, tools, memory, and routing, with no editor attached.<br>Hosts speak one protocol. Models arrive through rishi<br>(LiteRT, MLX, llama.cpp, Cursor, hosted APIs). A terminal app and an MCP server ship as frontends<br>on that same host.
pip install 'ramabana[cli]'<br>ramabana --root . --model gemma-e4b<br>ramabana --root . --model gemma-e2b --approve auto 'Reply with exactly: pong'
rishi fetches a model on first use. On CPU-only machines set RAMABANA_LITERT_BACKEND=cpu.
LocalHost indexes the folders you open. The harness never offers a tool the host cannot perform.
from ramabana import Agent<br>from ramabana.tools import LocalHost
agent = Agent(LocalHost(['..'], web=True), extensions=False)<br>agent.ready, agent.note
(False, 'not started')
from ramabana.testing import fake_agent<br>a, _ = fake_agent(replies=['in `ramabana/runtime.py`'])<br>a.ask('where is the compaction threshold?')
'in `ramabana/runtime.py`'
One notebook per module: the page you read is the module you import.
core · runtime · tools ·<br>agent · cli · mcp ·<br>vault · pyrepl ·<br>docs
uv sync --all-extras --group dev<br>uv run nbdev-export && uv run pytest
About<br>rama's arrow. a harness that does not miss<br>vedicreader.github.io/ramabana<br>Resources<br>Readme<br>Apache-2.0 license<br>Activity<br>Custom properties<br>Stars<br>0 stars<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository
Releases
Packages
Contributors
Languages
You can’t perform that action at this time.