tato_code
CLI coding agent that runs against a hosted proxy (see
tato-code-backend/). The CLI only needs the
proxy URL and a shared token — real LLM and Tavily API keys live on the
server.
Setup
# 1. Install
pip install -e .
# 2. Configure (one-time)
cp .env.example .env
# Edit .env and set:
# TATO_PROXY_URL = https://your-service.onrender.com
# TATO_PROXY_TOKEN = the same PROXY_TOKEN you set on the server
# 3. Run
tato
Architecture
┌────────────┐ bearer (TATO_PROXY_TOKEN) ┌──────────────────────┐
│ tato CLI │ ───────────────────────────▶ │ tato-code-backend │
│ (user) │ │ (Render, secrets) │
└────────────┘ │ ├─ /v1/chat/... │ ─▶ OpenRouter
│ ├─ /tools/web_... │ ─▶ Tavily
│ └─ /tools/fetch_.. │ ─▶ Tavily
└──────────────────────┘
The CLI uses langchain_openai.ChatOpenAI pointed at the proxy's
/v1 base URL, and the @tool wrappers in src/tato_code/tools/tools.py
POST to /tools/web_search and /tools/fetch_url. From the CLI's
perspective, OpenRouter and Tavily are just an OpenAI-compatible
endpoint and a couple of HTTP routes.
Why a proxy?
Distributing the CLI as a package would otherwise mean shipping the
real OPENROUTER_API_KEY and TAVILY_API_KEY to every user. The proxy
keeps both keys on the server and gives the CLI a single, token-gated
endpoint to talk to.
Configuration reference
| Env var | Required | Notes |
|---|---|---|
TATO_PROXY_URL |
yes | Base URL of the backend, no trailing slash. |
TATO_PROXY_TOKEN |
yes | Shared bearer token. Must match the server. |
See tato-code-backend/README.md for
the server-side setup and Render deployment steps.
Metadata
Release files for tato-code 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tato_code-0.1.0.tar.gz | 13.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tato_code-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.9 kB
Release files / tato_code-0.1.0.tar.gz
| Download URL | tato_code-0.1.0.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1523d25b4fd67907e8e04a5fe5073970254fe8c58b2c5ef032a5ec21f2186684
|
|
BLAKE2b-256 checksum How to use checksums |
3d1897c4d5f5c4467bb9286ede9d3ff61b0c4597a18b49ff5bc422f78f184ddb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / tato_code-0.1.0-py3-none-any.whl
| Download URL | tato_code-0.1.0-py3-none-any.whl |
|---|---|
| Size | 18.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8dee3afa414e3458a4480c39152aaa13860fcb24e3fb76245e5af636e7e2ee27
|
|
BLAKE2b-256 checksum How to use checksums |
e2f24ac6d668730b4aab17256972f4f63b9ae70fd9f8ab6874aecab9b7ef0788
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|