teai.io official coding agent CLI

One line to install.
380+ models as agents.

Sente is a thin launcher over OpenCode (MIT, 203k GitHub stars). One curl and every teai.io model is an agent in your terminal. Zero conversion layer — nothing to break when routing through teai.

terminal — install and run
# install in one line
curl -fsSL https://teai.io/te | sh

te # start an agent in the current dir
te run "explain this repo" # one-shot
te max run "..." # max perf = Kimi K3 (2.8T, 1M)
te -m teai/ # switch model (te models)

te / sente / fuseki — call it, talk to it, let it work

teai.io's agent CLIs come in three stages, each with a different way of showing up.

te sente fuseki
Trigger You type You speak Nothing — it's already watching
How it moves Call it, it moves Speak, and it moves first Without being called, it lays the groundwork
Input Text Voice Repo state, human-gates, etc.
Safety model Run on request 3-tier risk (read = auto / write = reversible, proceeds / delete·send·publish·pay = asks first) Inherits the same tiers. Defaults to proposing only — never executes on its own
Status GA GA Alpha · in design

fuseki now has an Alpha implementation: fuseki / te watch. It keeps an eye on your board (human-gates, recent repos) without being called, and only thinks and logs+speaks a suggestion when something actually changes. It never executes anything on its own. Stop it with te stop. It inherits the same safety model te and sente already run in production (anything risky always asks first).

Why Sente

Built for working through teai.io — here is what that means in practice.

🔗

Zero conversion, stable by design

teai.io is natively OpenAI-compatible. Sente (OpenCode-based) speaks OpenAI-compatible natively, so tool calls go through teai without a conversion layer.

📦

Inherit every upstream improvement

Not a fork — a thin launcher. On each launch it syncs the teai.io model catalog (380+) via /te/config, so you inherit every improvement to OpenCode (MIT, 203k stars) upstream.

🇯🇵

Tokyo region, JPY billing

Tokyo region, JPY billing, Japanese support. Coding discipline (sente-rules.md) is injected into every session — "read before you write" and "always ship a deliverable" enforced mechanically.

⚡

One line to install

Just curl -fsSL https://teai.io/te | sh. Installs OpenCode if missing, points OPENCODE_CONFIG at the teai.io-generated config.

🎛️

380+ models, one line to switch

Daily driver: glm-5.2 (~¥0.34/task). Quality-critical work: te lux for the Claude/OpenAI flagship (Fable 5). Hard tasks: te max for Kimi K3 (2.8T, 1M). DeepSeek V4 Pro is ~¥0.03/task. One base_url decides routing — cheap without breaking quality.
1 task ≈ 1K in + 500 out. See bake-off for measured numbers.

🔐

Privacy & enterprise-ready

API-compatible endpoints never store request bodies — only metadata, kept 90 days. Invoice billing, DPA available. BYOK (bring your own key) is in preparation. See security & privacy.

🕵️

Local PII scrubbing (opt-in)

te privacy scrub on masks emails, phone numbers, addresses, API keys, private keys and high-entropy tokens — plus names via your Contacts dictionary (te privacy scrub harvest), Japanese honorific heuristics and Apple's on-device name recognition — on this Mac before the request reaches teai.io. About 0.1 ms per request, no local LLM required; the reply is restored before it is shown. Not a guarantee of complete detection (Japanese given names without an honorific or a dictionary entry are not caught). An optional Ollama layer (--llm) exists but is slow. Details and measurements.

5 beta skills, backed by reference-corpus RAG

748 Q&A entries across law, security, freelance ops, cloud infra, and OSS licensing, searched with lightweight retrieval (semantic embedding + relevance cutoff) before answering. Full benchmark numbers — including where it failed — are published here.

⚖️

te legal — Japanese law (259 entries)

Civil code, labor law, company law, inheritance, consumer contracts, commercial transactions — 21 topics. Cross-checked against actual e-Gov statute text; semantic search returns "no match" for unrelated questions instead of fabricating an answer.

🔒

te security — secure coding (131 entries)

SQLi/XSS/CSRF mitigation, auth/authz, secrets management, dependency vulnerabilities, crypto basics, API security — 13 topics. Sanity-check "is this dangerous?" mid-implementation.

🧾

te freelance — freelance ops (125 entries)

Contract checkpoints, Japan's invoice system, tax filing, social insurance switching — 14 topics. The non-coding stuff solo developers get stuck on.

🛠️

te infra — cloud ops (117 entries)

Fly.io, Docker, CI/CD, SQLite/libsql, DNS, TLS — 14 topics, including real gotchas teai.io itself hit running this exact stack.

📜

te license — OSS licensing (116 entries)

MIT/Apache/GPL-family, AGPL's SaaS network clause, license compatibility — 14 topics, written after checking each license's official text.

🔌

Callable directly from the API — shitate/legal

Beyond the te legal "question" CLI, pass {"model":"shitate/legal"} to /v1/chat/completions directly and the same RAG context gets spliced in automatically. Same alias-resolution pattern as teai/auto — billing reflects whichever model actually served the response.

terminal
te legal "what is a statutory reserve share (iryuubun)?"
te security "how do I prevent SQL injection?"
te freelance "how do I register for the invoice system?"
te infra "how do I set a secret on Fly.io?"
te license "what should I watch for using AGPL in a SaaS?"

All [β] — general reference information, not a substitute for professional advice. Full methodology and numbers in the benchmark post.

Sente in 15 seconds

Recorded from a real te session: install → run → coding demo.

Demo: curl install → te run → file generation task → switch to te max (Kimi K3)

Ask by voice. Keep going in the cloud. Pay nothing for failures.

Three things you get from Sente on teai.io.

🎙️

Ask by voice

te talk starts a voice conversation: say what you want done, and Sente reads its reply back to you. Available on macOS, Linux and WSL.

☁️

Keeps working while your Mac sleeps

Sente Cloud (sente.teai.io) runs in your browser on a cloud workspace. Sign in with an emailed one-time code; closing your laptop doesn't stop the work.

🧾

Failed responses cost nothing

Empty responses are not billed, and failed paid media jobs and failed MCP tool calls are refunded in full. You pay for results, not for errors.

Start in 3 minutes

Paste one line in your terminal. Installs OpenCode if missing, points it at teai.io's config.

terminal
# 1. install
curl -fsSL https://teai.io/te | sh

# 2. API key (get a free one at /register — 100 credits on signup)
te login

# 3. run
te # interactive mode
te run "refactor this function"
te max run "..." # hard tasks on Kimi K3

# 4. optional: GUI apps (macOS · Developer ID signed + Apple notarized)
te app install sente # menu-bar Sente.app
te app install koe # always-listening Koe.app
te app install both # install both

Works on macOS, Linux, and WSL (Windows: use WSL). Coding discipline (sente-rules.md) is auto-written to ~/.config/teai/ and loaded into every session. GUI apps are placed in /Applications only when you explicitly run te app install (transparency first). See the docs.

Find skills in your language.

Choose Japanese or English for language settings and the skill list. Your choice is saved for the next launch. The initial language follows your terminal locale.

1. Choose a language. Update with te update in your shell, then restart Sente. Inside Sente, enter /language (or /lang) and choose Japanese or English.

2. Find a skill by purpose. Open /skills and search by display name, description or skill ID. Read the selected skill's description below the list. Press Ctrl+L or click the language label to switch languages in place.

This setting covers the language dialog and skill list. Available skills depend on your setup; missing translations are labeled. Skill IDs and execution instructions stay the same.

Frequently asked questions

What is Sente based on?+

A thin launcher over OpenCode (opencode.ai, MIT, 203k GitHub stars) — not a fork. On each launch it syncs the teai.io model catalog (380+) and points OPENCODE_CONFIG at a teai.io-generated config, so you inherit every upstream OpenCode improvement.

What can Sente do that a chat app can't?+

It reads and edits the files in your repository, runs commands, and reports back. With te talk you can hand over a task by speaking and hear the reply read back (macOS/Linux/WSL). Sente Cloud (sente.teai.io) runs in the browser on a cloud workspace, so work continues while your Mac is closed. And a failed response costs nothing: empty responses are not billed, and failed paid media jobs and failed MCP tool calls are refunded.

What does "Sente" mean?+

teai.io is "手AI" (hand + AI). Sente inherits the "hand" and is named after the Go term sente (先手, initiative/first-move). The agent moves before you do. "Always keep sente" — never let go of the initiative. The command is short: te (a sente alias is also installed).

What does it cost?+

Sente itself is free. teai.io uses a credit system: the Free plan gives 100 credits on signup (no credit card required) — enough for ~300,000 short chats on Qwen3.7 Flash or ~2,000 on glm-5.2 (1K in + 500 out each). Pro (¥4,350/mo ≈ $29 USD, 30,000 credits) and Business (¥14,800/mo ≈ $99 USD, 100,000 credits) are also available. See the pricing page.

Try it free now

100 credits on signup. No credit card. Start in 30 seconds.