Metadata-Version: 2.5
Name: ramabana
Version: 0.1.24
Summary: rama's arrow. a harness that does not miss
Project-URL: Repository, https://github.com/vedicreader/ramabana
Project-URL: Documentation, https://vedicreader.github.io/ramabana/
Author-email: Karthik <karthik.rajgopal@hotmail.com>
License: Apache-2.0
License-File: LICENSE
Keywords: nbdev
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.12
Requires-Dist: exhash>=0.4.9
Requires-Dist: fastcore>=2.1.16
Requires-Dist: fastllm-claude-code>=0.0.7
Requires-Dist: fastspec>=0.2.1
Requires-Dist: fossick>=0.1.11
Requires-Dist: koshas>=0.0.31
Requires-Dist: liteparse<2.13,>=2.12
Requires-Dist: litesearch>=0.1.1
Requires-Dist: pyyaml>=6.0
Requires-Dist: rgapi>=0.1.19
Requires-Dist: rishi>=0.1.27
Requires-Dist: toolslm>=0.3.48
Requires-Dist: vishalakshi>=0.1.11
Provides-Extra: acp
Requires-Dist: agent-client-protocol>=0.12.1; extra == 'acp'
Provides-Extra: all
Requires-Dist: agent-client-protocol>=0.12.1; extra == 'all'
Requires-Dist: dhrishti>=0.1.2; extra == 'all'
Requires-Dist: jupyter-client>=8.9.1; extra == 'all'
Requires-Dist: mcp>=1.2; extra == 'all'
Requires-Dist: pyghostty>=0.1.0; extra == 'all'
Requires-Dist: rishi[all]; extra == 'all'
Requires-Dist: teleprint>=0.1.1; extra == 'all'
Provides-Extra: cli
Requires-Dist: pyghostty>=0.1.0; extra == 'cli'
Requires-Dist: teleprint>=0.1.1; extra == 'cli'
Provides-Extra: copilot
Requires-Dist: rishi>=0.1.27; extra == 'copilot'
Provides-Extra: dev
Requires-Dist: agent-client-protocol>=0.12.1; extra == 'dev'
Requires-Dist: dhrishti>=0.1.2; extra == 'dev'
Requires-Dist: jupyter-client>=8.9.1; extra == 'dev'
Requires-Dist: mcp>=1.2; extra == 'dev'
Requires-Dist: nbdev>=3.3.11; extra == 'dev'
Requires-Dist: notebook>=7.6.1; extra == 'dev'
Requires-Dist: pyghostty>=0.1.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: rishi[all]; extra == 'dev'
Requires-Dist: rishi[all]>=0.1.27; extra == 'dev'
Requires-Dist: teleprint>=0.1.1; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp>=1.2; extra == 'mcp'
Provides-Extra: pyrepl
Requires-Dist: dhrishti>=0.1.2; extra == 'pyrepl'
Requires-Dist: jupyter-client>=8.9.1; extra == 'pyrepl'
Requires-Dist: pyghostty>=0.1.0; extra == 'pyrepl'
Requires-Dist: teleprint>=0.1.1; extra == 'pyrepl'
Description-Content-Type: text/markdown

# ramabana


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

<p align="center">

<img src="media/rama-arrow.png" alt="rama's arrow" width="96" />
</p>

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.

<p align="center">

<img src="media/ramabana-cli-demo.gif" alt="ramabana CLI on Gemma 4 LiteRT" width="820" />
</p>

``` sh
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](00_core.ipynb) · [runtime](01_runtime.ipynb) · [tools](02_tools.ipynb) · [agent](03_agent.ipynb) · [cli](05_cli.ipynb) · [mcp](06_mcp.ipynb) · [vault](07_vault.ipynb) · [pyrepl](11_pyrepl.ipynb) · [docs](https://vedicreader.github.io/ramabana/)

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