Ask your operator
Tell them your project, model, daily budget, and request limit. If you are the operator, open the operator console.
Start here · about five minutes
Follow these steps in order. You will create one controlled identity, save its token safely, connect Codex, and send your first request.
og_agent_. If you paste it into chat, a screenshot, or a public place, disable it and create another one.
Before you start
Tell them your project, model, daily budget, and request limit. If you are the operator, open the operator console.
For Codex, use allowed model openai/gpt-5.6-sol. A reasonable starting policy is $5/day and $0.50/request.
After creation, Guard shows a value beginning with og_agent_. Keep that window open until the next step succeeds.
macOS
Copy this command exactly. Do not add the token to the command.
security add-generic-password -U \
-a "$USER" \
-s "orbio-guard-codex" \
-w
Terminal waits for a password. Paste the complete og_agent_... token, then press Return. The token may remain invisible while you paste. That is normal.
Now verify that Keychain has the item. This command does not print the token:
security find-generic-password \
-a "$USER" \
-s "orbio-guard-codex" \
>/dev/null && echo "Guard token saved"
Guard token savedsecurity add-generic-password -U \og_agent_...
-U means “update if this item exists.” The token belongs at the hidden prompt after the command, not after -U.
Codex configuration
Open the Codex configuration file:
mkdir -p ~/.codex
nano ~/.codex/config.toml
Add the following configuration. If the file already has top-level model or model_provider lines, replace those lines instead of adding duplicates.
model = "gpt-5.6-sol"
model_provider = "orbio_guard"
[model_providers.orbio_guard]
name = "Orbio Guard"
base_url = "https://api.guard.larkvine.org/v1"
env_key = "ORBIO_GUARD_AGENT_TOKEN"
env_key_instructions = "Use your Guard agent token, not the Orbio key."
wire_api = "responses"
requires_openai_auth = false
supports_websockets = false
Press Control+O, press Return to confirm the filename, then press Control+X.
Codex uses the metadata name gpt-5.6-sol. Guard safely maps it to Orbio's openai/gpt-5.6-sol model ID.
Every new terminal
Run this before starting Codex:
export ORBIO_GUARD_AGENT_TOKEN="$(
security find-generic-password \
-a "$USER" \
-s "orbio-guard-codex" \
-w
)"
Check that the variable exists without revealing it:
if [ -n "$ORBIO_GUARD_AGENT_TOKEN" ]; then
echo "Guard token loaded"
else
echo "Guard token missing"
fi
Guard token loadedCheck before launch
codex --strict-config doctor --summary
Look at the bottom of the report.
22 ok · 0 warn · 0 failThe Configuration section should show provider orbio_guard. If it shows openrouter, return to step 3 and replace the top-level provider setting.
Start working
codex
The Codex header should show:
model: gpt-5.6-solNow type a normal request, for example:
Review this project and explain how to run it.Find and fix the failing tests.Codex sends your request to Guard. Guard checks your identity, model, status, request ceiling, and daily budget before using Orbio.
Optional terminal test
After loading the token in step 4, run:
curl https://api.guard.larkvine.org/v1/chat/completions \
-H "Authorization: Bearer $ORBIO_GUARD_AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.6-sol",
"messages": [{"role": "user", "content": "Reply with: connected"}]
}'
A JSON response containing "content":"connected" means the complete Guard and Orbio path works.
To see currently available Orbio models:
curl https://api.guard.larkvine.org/v1/models \
-H "Authorization: Bearer $ORBIO_GUARD_AGENT_TOKEN"
Linux and Windows
This reads the token without displaying it, then exports it for the current terminal:
read -rsp "Paste Guard token: " ORBIO_GUARD_AGENT_TOKEN
echo
export ORBIO_GUARD_AGENT_TOKEN
codex
For the current PowerShell window:
$secure = Read-Host "Paste Guard token" -AsSecureString
$pointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
$env:ORBIO_GUARD_AGENT_TOKEN = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($pointer)
codex
Apps and IDEs
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.ORBIO_GUARD_AGENT_TOKEN,
baseURL: "https://api.guard.larkvine.org/v1",
});
const result = await client.chat.completions.create({
model: "openai/gpt-5.6-sol",
messages: [{ role: "user", content: "Hello" }],
});
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ORBIO_GUARD_AGENT_TOKEN"],
base_url="https://api.guard.larkvine.org/v1",
)
result = client.chat.completions.create(
model="openai/gpt-5.6-sol",
messages=[{"role": "user", "content": "Hello"}],
)
export ANTHROPIC_BASE_URL="https://api.guard.larkvine.org"
export ANTHROPIC_AUTH_TOKEN="$ORBIO_GUARD_AGENT_TOKEN"
export ANTHROPIC_MODEL="anthropic/claude-sonnet-5"
claude
codex, claude, or your app there.Never commit a workspace file containing the token.
https://api.guard.larkvine.org/v1og_agent_... token.openai/gpt-5.6-solIf your Cursor version has no base URL setting, use its terminal to run Codex or Claude Code.
Fix common mistakes
-U.model_provider is still openrouter. Replace it with orbio_guard in ~/.codex/config.toml.gpt-5.6-sol in Codex config; Guard maps it to openai/gpt-5.6-sol.The whole idea
Guard handles the Orbio key, policy, budget, forwarding, and spend accounting.