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.2
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.2.tar.gz | 92.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tato_code-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 195.0 kB
Release files / tato_code-0.1.2.tar.gz
| Download URL | tato_code-0.1.2.tar.gz |
|---|---|
| Size | 92.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ba9339ecc457087207702f2b821c0f2e0bcba7b2474b82e7ca8eba353e66c1d1
|
|
BLAKE2b-256 checksum How to use checksums |
39b0b6d5a60a0084005bd2e0766a55010b449ba9681428371deadbf32867d492
|
| 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.2-py3-none-any.whl
| Download URL | tato_code-0.1.2-py3-none-any.whl |
|---|---|
| Size | 102.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed341be9eac7044bd39b3b6673a0f3d251b6085249737d464d8c463bb8e3d329
|
|
BLAKE2b-256 checksum How to use checksums |
9b5fad9d8c0ea616d33210fea2c2f2c9015ef3a403c82e315f44d038eea984e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|