Your key.
Your terminal.
Your engine.

A BYOK AI coding agent for the command line. Requests go straight to Anthropic, Google, or OpenAI with your own key — no proxy, no token markup. It edits files behind a diff-approval gate and drives Roblox Studio and Godot 4 over MCP.

npm install -g onlycli

Node.js 18.17+ · MIT licensed

onlycli — C:\projects\my-game
$ onlycli Anthropic / claude-sonnet-4-5 Type to chat. Use /help for commands, /exit to quit. add a pause menu that stops the game clock I'll add a CanvasLayer with a Resume button and toggle Engine.time_scale from the root script. ~ ui/pause_menu.gd +34 -0 ~ game.gd +11 -2 Apply these changes? [y/N/d] d (showing diff…) /auto on Auto-approve enabled — changes apply without asking.

Engine integrations

/mcp <engine> launches the engine's MCP server as a child process and speaks to it over stdio. Its tools are described to the model, which calls them by emitting a tool block; OnlyCLI runs the call and feeds the result back.

Roblox Studio

LIVE

Uses the official MCP server built into Studio — no plugin, no token. Edit scripts, run Luau, navigate the DataModel, search the Creator Store. Scripts inside inserted models are stripped by default.

Godot 4

LIVE

Runs godot-mcp through npx, pinned to a known version. 14 tools: launch the editor, run a project, read debug output, stop it, create scenes and nodes. The binary is auto-detected; GODOT_PATH overrides.

Unity

PLANNED

C# scripting and GameObject manipulation. Listed in /mcp list, not implemented yet.

Unreal Engine

PLANNED

Blueprint and C++ support for UE5. Listed in /mcp list, not implemented yet.

What it actually does

Bring your own key

Anthropic, Google Gemini, or any OpenAI-compatible endpoint. Requests go directly to the provider, so you see your real usage and pay no markup.

Diff before write

Every file change is shown as a diff and waits for approval. /auto on skips the gate when you want speed; piped or CI runs never write, because nothing can approve.

Sandboxed paths

Agent writes resolve inside the working directory — ../ and escaping absolute paths are rejected. Secret-shaped files (.env, *.pem, *.key) are never read or written.

Web access, guarded

Search and page fetch are on by default, keyless via DuckDuckGo. Fetched text reaches the model as untrusted data; localhost, private ranges, and cloud metadata addresses are blocked, re-checked after each redirect.

Session control

Switch provider, model, or endpoint mid-conversation. Pin files so they are re-sent every turn, or /scan the project. Multi-line input via a trailing \ or a block delimiter.

Keys where they belong

Environment variable first, then the OS keychain, then a 0600 file with a warning. auth list masks values; a full key is never printed.

Install it and point it at your project

One command, your own key, and a diff you approve before anything is written.