# Ramabana – Rama's Arrow

> Source: <https://github.com/vedicreader/ramabana>
> Published: 2026-08-15 01:03:04+00:00

The brain of a coding agent: policy, tools, memory, and routing, with no editor attached.
Hosts speak one protocol. Models arrive through [rishi](https://github.com/vedicreader/rishi)
(LiteRT, MLX, llama.cpp, Cursor, hosted APIs). A terminal app and an MCP server ship as frontends
on that same host.

```
pip install 'ramabana[cli]'
ramabana --root . --model gemma-e4b
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](https://vedicreader.github.io/ramabana/tools.html#localhost) indexes the folders you open. The harness never offers a tool the host cannot perform.

``` python
from ramabana import Agent
from ramabana.tools import LocalHost

agent = Agent(LocalHost(['..'], web=True), extensions=False)
agent.ready, agent.note
(False, 'not started')
python
from ramabana.testing import fake_agent
a, _ = fake_agent(replies=['in `ramabana/runtime.py`'])
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](/vedicreader/ramabana/blob/main/00_core.ipynb) · [runtime](/vedicreader/ramabana/blob/main/01_runtime.ipynb) · [tools](/vedicreader/ramabana/blob/main/02_tools.ipynb) ·
[agent](/vedicreader/ramabana/blob/main/03_agent.ipynb) · [cli](/vedicreader/ramabana/blob/main/05_cli.ipynb) · [mcp](/vedicreader/ramabana/blob/main/06_mcp.ipynb) ·
[vault](/vedicreader/ramabana/blob/main/07_vault.ipynb) · [pyrepl](/vedicreader/ramabana/blob/main/11_pyrepl.ipynb) ·
[docs](https://vedicreader.github.io/ramabana/)

```
uv sync --all-extras --group dev
uv run nbdev-export && uv run pytest
```


