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.3.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.3.0.tar.gz | 13.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tato_code-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.6 kB
Release files / tato_code-0.3.0.tar.gz
| Download URL | tato_code-0.3.0.tar.gz |
|---|---|
| Size | 13.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7cc8955681b1986a7febfe34e9264731e7c79760df3dd2d010f11a2b5f821332
|
|
BLAKE2b-256 checksum How to use checksums |
05d40f8dfeddf1c0ff38df0147df8c502cfa8a126e2ddb627209767a906ee593
|
| 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.3.0-py3-none-any.whl
| Download URL | tato_code-0.3.0-py3-none-any.whl |
|---|---|
| Size | 18.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
853227dd3ce80b03cf3fc18a4a61fb5d0fcbffaeca81ab9e8776cac33cd0bbff
|
|
BLAKE2b-256 checksum How to use checksums |
907750ab8bb97e94e37e564ad1e0861f65c38c6d9a25787b189ddbdbc0edf878
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|