- Use your preferred coding agent. Run Cyril Code, Codex, or Pi with CYRIL.
- Choose your own models. Connect free, paid, or local providers and search their models from one Admin UI.
- Route work your way. Set one default model or map Fable, Opus, Sonnet, and Haiku separately.
- Save time and tokens. Five built-in optimizations handle quota probes, command-prefix detection, title generation, suggestion mode, and filepath extraction locally instead of calling your provider; optionally enable RTK to filter noisy terminal output before it reaches the model.
- Keep coding-agent capabilities. Use streaming, tools, reasoning, and image input with compatible models.
- Work where you want. Launch from your desktop, connect supported IDEs, or use optional Discord and Telegram bots with voice notes.
- ✨ Apple-Inspired UI. Enjoy a beautifully redesigned, premium admin interface featuring glassmorphism, smooth micro-animations, and modern Apple typography.
- 🛠️ Massive Skills Hub. Instantly search and install over 4,500+ curated skills, plugins, and custom agents natively built right into the platform.
Cyril Code comes pre-loaded with the largest, most comprehensive collection of Claude and AI coding skills available. We've natively integrated the top community repositories right into your local environment:
- awesome-claude-skills (ComposioHQ)
- claude-skills (Alireza Rezvani) (345+ Agent skills & plugins)
- claude-plugins-official (Anthropics)
- awesome-claude-skills (BehiSecc)
- awesome-claude-skills (travisvn)
- claude-skills (Jeffallan)
- ECC (affaan-m)
Search, filter, and install these tools instantly from the Skills Hub tab in your Admin UI! All third-party Python scripts are CI-neutralized, ensuring your environment remains perfectly stable.
macOS/Linux:
curl -fsSL "https://raw.githubusercontent.com/Cyrilthetecchieee/cyril-code-/main/scripts/install.sh" | shWindows PowerShell:
& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Cyrilthetecchieee/cyril-code-/main/scripts/install.ps1")))Re-run the same command whenever you want to update. You can review the installers before running them: install.sh and install.ps1.
The installer asks which coding agents to install or verify. Choose at least one; skipped agents are left unchanged. It can also install and configure RTK globally for the selected agents; RTK is off by default.
Open Cyril Code from your desktop or Start menu. For local development, you can also run:
uv run startOpen Cyril Code from your desktop or Applications folder.
Run:
uv run startOn Windows and macOS, CYRIL runs in the system tray or menu bar without opening a terminal. Use its menu to open Admin, check server status, restart, or quit. On Windows, left-clicking the tray icon opens Admin directly.
To print the installed Cyril Code version without starting the server,
run start --version.
When using start, keep the terminal open. The Admin UI opens in your
browser after startup by default. Its address is also shown in the log:
INFO: Admin UI: http://127.0.0.1:8082/admin (local-only)
Use the port shown in your terminal if it differs from 8082.
- Create an API key at build.nvidia.com/settings/api-keys.
- Open the Admin UI URL from the server log.
- Paste the key into
NVIDIA_NIM_API_KEY. - Leave
MODELon the defaultnvidia_nim/nvidia/nemotron-3-super-120b-a12b, or search the model dropdown and select another model. - Click Validate, then Apply.
Cyril Code:
cyril_codeCodex:
cyril-codexPi:
cyril-piAll three launchers use the current Admin UI settings. Use the agent's model picker to choose from the models CYRIL exposes. Normal CLI arguments still work, for example:
cyril-codex exec "hello"cyril-pi registers CYRIL only for that Pi process; your existing Pi settings, sessions, credentials, and extensions remain unchanged.
- Open a provider link below for its key, models, or setup instructions.
- In the Admin UI, configure the listed setting. For OpenAI, use Providers → Connected accounts instead.
- Search the
MODELdropdown and select a model. If the provider cannot list models, enter<provider-id>/<exact-provider-model-id>manually. - Click Validate, then Apply.
Provider catalog
| Provider | Admin UI setting | Example MODEL |
|---|---|---|
| NVIDIA NIM | NVIDIA_NIM_API_KEY |
nvidia_nim/nvidia/nemotron-3-super-120b-a12b |
| OpenRouter | OPENROUTER_API_KEY |
open_router/openrouter/free |
| Groq | GROQ_API_KEY |
groq/llama-3.3-70b-versatile |
| OpenAI / ChatGPT | Connect ChatGPT in the Admin UI | openai/<model-id> |
| Azure OpenAI | AZURE_OPENAI_API_KEY and AZURE_OPENAI_BASE_URL |
azure_openai/<deployment-name> |
| Google AI Studio (Gemini) | GEMINI_API_KEY |
gemini/models/gemini-3.1-flash-lite |
| Google Vertex AI | VERTEX_PROJECT_ID + ADC |
vertex/google/gemini-3.5-flash |
| DeepSeek | DEEPSEEK_API_KEY |
deepseek/deepseek-chat |
| Mistral La Plateforme | MISTRAL_API_KEY |
mistral/devstral-small-latest |
| Mistral Codestral | CODESTRAL_API_KEY |
mistral_codestral/codestral-latest |
| OpenCode Zen | OPENCODE_API_KEY |
opencode_zen/gpt-5.3-codex |
| OpenCode Go | OPENCODE_API_KEY |
opencode_go/minimax-m2.7 |
| Vercel AI Gateway | AI_GATEWAY_API_KEY |
vercel/openai/gpt-5.5 |
| Amazon Bedrock | AWS_BEARER_TOKEN_BEDROCK |
bedrock/openai.gpt-oss-120b |
| Hugging Face Inference Providers | HUGGINGFACE_API_KEY |
huggingface/Qwen/Qwen3-Coder-480B-A35B-Instruct:fastest |
| Cohere | COHERE_API_KEY |
cohere/command-a-plus-05-2026 |
| GitHub Models | GITHUB_MODELS_TOKEN |
github_models/openai/gpt-4.1 |
| Wafer | WAFER_API_KEY |
wafer/DeepSeek-V4-Pro |
| Kimi API | KIMI_API_KEY |
kimi/kimi-k2.5 |
| Kimi Code | KIMI_CODE_API_KEY |
kimi_code/k3 |
| MiniMax | MINIMAX_API_KEY |
minimax/MiniMax-M3 |
| Cerebras Inference | CEREBRAS_API_KEY |
cerebras/gpt-oss-120b |
| SambaNova | SAMBANOVA_API_KEY |
sambanova/Meta-Llama-3.3-70B-Instruct |
| Kilo.ai | KILO_API_KEY |
kilo/kilo-auto/free |
| Fireworks AI | FIREWORKS_API_KEY |
fireworks/accounts/fireworks/models/llama-v3p3-70b-instruct |
| Novita AI | NOVITA_API_KEY |
novita/deepseek/deepseek-v4-flash-0731 |
| Cloudflare Workers AI | CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID |
cloudflare/@cf/moonshotai/kimi-k2.6 |
| Z.ai | ZAI_API_KEY |
zai/glm-5.2 |
| TokenRouter | TOKENROUTER_API_KEY |
tokenrouter/moonshotai/kimi-k3-free |
| NaraRoute | NARAROUTE_API_KEY |
nararoute/kimi-k3-free |
| Ollama Cloud | OLLAMA_API_KEY |
ollama_cloud/qwen3-coder:480b |
| LM Studio | LM_STUDIO_BASE_URL |
lmstudio/<model-id> |
| llama.cpp | LLAMACPP_BASE_URL |
llamacpp/<model-id> |
| Ollama | OLLAMA_BASE_URL |
ollama/<model-tag> |
Provider-specific setup
- OpenAI uses your ChatGPT subscription rather than an API key. Connect from Providers → Connected accounts in the Admin UI. Use device code on headless systems. Restart an already-running agent after connecting.
- Azure OpenAI uses the deployment names from your resource. Set
AZURE_OPENAI_BASE_URLto its complete v1 endpoint, such ashttps://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/, and select a deployment that supports Chat Completions. Enter the deployment name as a custom model slug if it does not appear in the model dropdown. - Mistral Codestral uses a separate key from Mistral La Plateforme.
- Kimi Code subscription keys use
kimi_code/; Kimi API credit keys usekimi/. Kimi Code plans are for personal interactive coding-agent use under Kimi's community guidelines. - OpenCode Zen and OpenCode Go share
OPENCODE_API_KEYbut use the explicitopencode_zen/andopencode_go/model prefixes. - For Amazon Bedrock, set
BEDROCK_BASE_URLto the URL for the same region as the API key and select one of the listed models. - Vertex AI uses Google Application Default Credentials instead of an API key.
Locally, run
gcloud auth application-default loginonce; service-account files and attached service accounts also work. SetVERTEX_PROJECT_ID, and optionally changeVERTEX_LOCATIONfrom itsglobaldefault. - Cloudflare requires both its API token and account ID.
- For Ollama Cloud, use the exact model IDs shown in the model picker. Local
Ollama uses the separate
ollama/prefix. - Prefer tool-capable models for coding agents. Local models also need enough context for the agent's system prompt and tool definitions.
Local provider setup
Start LM Studio's local server, load a tool-capable model, and use the model identifier shown by LM Studio with the lmstudio/ prefix. The default URL is http://localhost:1234/v1.
Start llama-server with its OpenAI-compatible Chat Completions API and enough context for the model. Use the local model ID with the llamacpp/ prefix. LLAMACPP_BASE_URL defaults to http://localhost:8080/v1; CYRIL accepts either the server root or an explicit /v1 suffix.
ollama pull llama3.1
ollama serveUse the tag shown by ollama list with the ollama/ prefix. OLLAMA_BASE_URL defaults to http://localhost:11434; CYRIL accepts either the root URL or an explicit /v1 suffix.
Optional model-tier routing
MODEL is the fallback for every request. Select a model for MODEL_FABLE, MODEL_OPUS, MODEL_SONNET, or MODEL_HAIKU to override an individual Cyril Code tier; select None to use MODEL.
For example, route Opus to nvidia_nim/nvidia/nemotron-3-super-120b-a12b, Sonnet to open_router/openrouter/free, Haiku to lmstudio/qwen3.5-coder, and keep MODEL on zai/glm-5.2.
Reasoning control
Open Admin UI → Model Config → Reasoning and select the behavior you want.
| Selection | Behavior |
|---|---|
| From client (default) | Use the effort sent by Cyril Code, Codex, or Pi. If none is sent, keep the provider default. |
| Off | Request reasoning to be disabled. |
| Low, Medium, High, X-High, or Max | Override the client with the selected reasoning level. |
| Inherit (Fable, Opus, Sonnet, and Haiku only) | Use the root Reasoning selection. |
Providers that do not support a selected control retain their own behavior.
For terminal use, start start, then run cyril_code, cyril-codex, or cyril-pi. Use the guides below for editor integrations.
Cyril Code in VS Code
Install the Cyril Code extension. Open VS Code's user settings as JSON and add:
"claudeCode.disableLoginPrompt": true,
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "http://localhost:8082" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "freecc" },
{ "name": "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY", "value": "1" },
{ "name": "CLAUDE_CODE_AUTO_COMPACT_WINDOW", "value": "190000" },
{ "name": "DISABLE_AUTOUPDATER", "value": "1" },
{ "name": "DISABLE_FEEDBACK_COMMAND", "value": "1" },
{ "name": "DISABLE_ERROR_REPORTING", "value": "1" }
]Match the port and authentication token to the Admin UI, then reload the extension.
Codex App
Start CYRIL, then edit your Codex configuration:
- Windows:
%USERPROFILE%\.codex\config.toml - macOS:
~/.codex/config.toml
Add the matching model-catalog path and replace YOUR_USERNAME.
Windows:
model_catalog_json = "C:/Users/YOUR_USERNAME/.cyril/codex-model-catalog.json"macOS:
model_catalog_json = "/Users/YOUR_USERNAME/.cyril/codex-model-catalog.json"Then add the shared CYRIL settings:
model_provider = "fcc"
model = "nvidia_nim/nvidia/nemotron-3-super-120b-a12b"
[model_providers.cyril]
name = "Cyril Code"
base_url = "http://127.0.0.1:8082/v1"
wire_api = "responses"
[model_providers.cyril.auth]
command = "cyril-codex"
args = ["--print-proxy-auth-token"]Match the model and port to the Admin UI. The auth command reads CYRIL's current proxy token automatically. Restart the Codex App after setup or model changes, then select an CYRIL model from its model picker.
Codex in VS Code
Install the Codex extension. Create or edit ~/.codex/config.toml (%USERPROFILE%\.codex\config.toml on Windows):
model_provider = "fcc"
model = "nvidia_nim/nvidia/nemotron-3-super-120b-a12b"
[model_providers.cyril]
name = "Cyril Code"
base_url = "http://127.0.0.1:8082/v1"
wire_api = "responses"
[model_providers.cyril.auth]
command = "cyril-codex"
args = ["--print-proxy-auth-token"]Match model and the port to the Admin UI. The auth command reads CYRIL's current
proxy token automatically. Restart VS Code after setup or model changes. For
WSL-backed Codex, edit the file inside WSL.
Cyril Code in JetBrains ACP
Edit the installed Claude ACP configuration:
- Windows:
C:\Users\%USERNAME%\AppData\Roaming\JetBrains\acp-agents\installed.json - Linux/macOS:
~/.jetbrains/acp.json
Set the environment for acp.registry.claude-acp:
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:8082",
"ANTHROPIC_AUTH_TOKEN": "freecc",
"CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "190000",
"DISABLE_AUTOUPDATER": "1",
"DISABLE_FEEDBACK_COMMAND": "1",
"DISABLE_ERROR_REPORTING": "1"
}Match the port and token to the Admin UI, then restart the IDE.
Cyril Code still asks you to log in
If Cyril Code asks you to log in after you configure the CYRIL URL and token, open its state file:
- Windows:
%USERPROFILE%\.claude.json - macOS/Linux/WSL:
~/.claude.json
Merge this property into the existing JSON without removing its other fields:
"hasCompletedOnboarding": trueIf the file does not exist, create it with a complete JSON object:
{
"hasCompletedOnboarding": true
}Restart Cyril Code or the IDE after saving the file.
Configure integrations from Admin UI → Messaging, then click Validate and Apply.
Discord bot
- Create a bot in the Discord Developer Portal.
- Enable Message Content Intent and invite it with read, send,
message-history, and Manage Messages permissions so
/clearcan remove user prompts. - Set Messaging Platform to discord.
- Enter Discord Bot Token, Allowed Discord Channels, and an absolute Allowed Directory.
- Apply the settings and restart the server if requested.
Telegram bot
- Create a bot with @BotFather.
- Get your numeric user ID from @userinfobot. In groups, grant the bot permission to delete messages.
- Set Messaging Platform to telegram.
- Enter Telegram Bot Token, Allowed Telegram User ID, and an absolute Allowed Directory.
- Apply the settings and restart the server if requested.
| Usage | Behavior |
|---|---|
/stats |
Show session state. |
Standalone /stop |
Cancel all work. |
Reply with /stop |
Cancel only the selected request while other queued requests continue. |
Standalone /clear |
Reset all CYRIL state and remove every tracked message in that chat, including user prompts, voice notes, CYRIL replies, Telegram's online notice, and the clear command itself. |
Reply with /clear |
Delete the selected message and its literal platform reply subtree while preserving its ancestors and siblings. |
Voice notes
Choose the voice backend you want, then re-run the installer with its option.
| Voice backend | macOS/Linux option | Windows option |
|---|---|---|
| NVIDIA NIM transcription | --voice-nim |
-VoiceNim |
| Local Whisper on CPU or CUDA | --voice-local |
-VoiceLocal |
| Both backends | --voice-all |
-VoiceAll |
| Local Whisper with CUDA 13.0 | --voice-local --torch-backend cu130 |
-VoiceLocal -TorchBackend cu130 |
The examples below install NVIDIA NIM transcription. To use another backend, replace the final option with the matching one from the table.
macOS/Linux:
curl -fsSL "https://raw.githubusercontent.com/Cyrilthetecchieee/cyril-code-/main/scripts/install.sh" | sh -s -- --voice-nimWindows PowerShell:
& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Cyrilthetecchieee/cyril-code-/main/scripts/install.ps1"))) -VoiceNimRestart start. In Admin UI → Messaging → Voice, enable voice notes, select cpu, cuda, or nvidia_nim, and choose the Whisper model. Local gated models need HUGGINGFACE_API_KEY; NVIDIA NIM transcription needs NVIDIA_NIM_API_KEY.
Re-run the matching command from Install Or Update.
Stop every running CYRIL command before uninstalling.
Removes
- Cyril Code, including its desktop launcher and commands
~/.cyril/
Keeps
- uv and Python
- Cyril Code, Codex, Pi, and RTK
- Shared PATH entries
macOS/Linux:
curl -fsSL "https://raw.githubusercontent.com/Cyrilthetecchieee/cyril-code-/main/scripts/uninstall.sh" | shWindows PowerShell:
& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Cyrilthetecchieee/cyril-code-/main/scripts/uninstall.ps1")))MIT License. See LICENSE for details.


