Terminal AI agent with 27 providers, 414 models, plugin system, MCP support, and zero vendor lock-in.
Install · Quick Start · Features · Commands · Providers · Plugins · MCP · Themes
Zyn is a command-line AI agent that runs on your machine. It connects to any LLM provider (OpenAI, Anthropic, Gemini, Groq, etc.), executes real tools (shell commands, file operations, web searches), and remembers context across sessions.
It's not a chat wrapper. It's an agent that actually does things — runs commands, reads/writes files, searches the web, creates images, and talks to MCP servers. You can extend it with plugins from npm.
Honest assessment: Zyn works well for terminal-based AI workflows. It has real tool execution, persistent memory, and a plugin system. It's not perfect — some edge cases with streaming can be rough, and the TUI occasionally glitches. But it gets the job done for developers who want AI in their terminal without vendor lock-in.
# Install globally
npm install -g zyn-ai
# Or use directly
npx zyn-ai
# From source
git clone https://github.com/SoyMaycol/Zyn.git
cd Zyn
npm install
npm startRequirements: Node.js 18+
zyn # Full TUI with streaming, themes, plugins
zyn "your prompt" # Single CLI prompt
zyn --new # Fresh session
zyn --resume ID # Resume a previous sessionFirst run: Zyn starts with a free model (Zen/Nemotron). Use /providers to configure your own API keys, then /models to pick a model.
318360.mp4
- Tool execution — run commands, read/write files, edit code, search web, create images
- Persistent memory — saves context across sessions (
/memory,/summary) - Session management — full history, resume, export, transcripts
- Background jobs —
/bgfor long-running tasks,/jobsto manage them - Streaming — live token output, thinking indicators, cancel with ESC
- i18n — English/Spanish with auto-detection
- No hard limits — configurable timeouts, history size, context windows
- 27 providers — OpenAI, Anthropic, Google Gemini, Groq, Together, OpenRouter, Mistral, xAI, Cohere, Fireworks, Perplexity, Ollama, GitHub Models, Azure, AWS Bedrock, Vertex AI, Cloudflare, LM Studio, Novita, Chutes, Inference.net, Replicate, DeepSeek, HuggingFace, Zen, Qwen, Zyn Cloud, Custom
- 414 built-in models — real model IDs, no fake entries
- Dynamic model picker —
/modelsopens interactive selector - Custom model IDs — type any model ID (with warning if not registered)
- Auto-discovery —
/provider syncfetches latest model lists
- Interactive selection — model picker, provider selector, theme chooser
- Real-time streaming — thinking blocks, tool call logs, live token counter
- 24 built-in themes — dark, light, gruvbox, dracula, nord, solarized, monokai, tokyo-night, matrix, cyberpunk, vaporwave, rosePine, catppuccin, and more
- Dynamic theme chooser —
/themeopens interactive picker with preview - Responsive — adapts to any terminal width, listens to resize events
- No emojis — clean text UI with symbols (
>,·,x)
/pluginscommand — install, uninstall, list community plugins- npm-based — install from npmjs registry
- Plugin types — themes, skills, tools, prompts, commands, UI components
- Security model — consent required before install, warns about permissions
- Sandboxed — plugins run in restricted context, no full system access
/mcpcommands — connect, disconnect, list, import- Model Context Protocol — connect to external tool servers
- Auto-discovery — detect MCP servers from URLs
- Tool integration — MCP tools appear alongside built-in tools
| Command | Description |
|---|---|
/help |
Show help |
/status |
Current model, provider, session info |
/history |
Last 20 actions |
/memory |
Show memory summary |
/session |
Current session info |
/sessions |
List all sessions |
/new |
New session |
/resume <ID> |
Resume session |
/title <text> |
Rename session |
| Command | Description |
|---|---|
/models |
Model picker |
/providers |
Provider selector (prompts for an optional Zyn Cloud API key) |
/provider set <name> <field> <value> |
Set provider config |
/provider remove <name> |
Remove provider |
/provider sync <name> |
Fetch latest models |
/theme |
Theme picker (24 themes) |
/theme <name> |
Switch theme directly |
/lang <en|es> |
Change language |
/auto on|off |
Auto-approve tools |
/persona set <text> |
Set AI persona |
/config show |
Show all config |
/cwd <path> |
Change working directory |
| Command | Description |
|---|---|
/plugins |
Open plugin manager |
/plugins list |
List installed plugins |
/plugins install <name> |
Install from npm |
/plugins uninstall <name> |
Remove plugin |
/plugins search <query> |
Search npm for plugins |
| Command | Description |
|---|---|
/mcp |
Open MCP manager |
/mcp connect <name> <url> |
Connect to MCP server |
/mcp disconnect <name> |
Disconnect server |
/mcp list |
List connected servers |
/mcp tools <name> |
List server tools |
/mcp import |
Auto-discover MCP servers |
| Command | Description |
|---|---|
/export |
Export session to txt |
/bg |
Detach to background |
/jobs |
List background jobs |
/stop |
Stop current turn |
/clear |
Reset session |
/exit |
Exit Zyn |
Zyn connects to 27 LLM providers. Configure with /providers, then pick a model with /models.
Free options (no API key):
- Zen (Nemotron, Mimo) — default, works out of the box
Popular paid providers:
- OpenAI — GPT-4o, GPT-5, o1, o3
- Anthropic — Claude 3.5 Sonnet, Claude 4
- Google — Gemini 2.5 Pro, Gemini 2.5 Flash
- Groq — Llama 3.3, Mixtral (fast inference)
- Together — DeepSeek, Llama, Qwen models
- OpenRouter — access to multiple providers
- Zyn Cloud — OpenAI-compatible endpoint; API key is optional and can be entered from
/providers
# Configure a provider
/provider set openai apiKey sk-xxx
# Optional: save a Zyn Cloud key
/provider set zyncloud apiKey sk-xxx
# Pick a model
/modelsZyn includes 24 built-in themes with dynamic selection.
/theme # Interactive theme picker
/theme gruvbox # Switch directly
/theme random # Random theme
/theme list # List all themesBuilt-in themes: dark, cappuccino, light, coffee, gruvbox, dracula, nord, solarized, monokai, tokyo-night, matrix, synthwave, rosePine, catppuccin, oneDark, materialPalenight, cyberpunk, arctic, ember, lavender, midnight, sunset, ocean, vaporwave.
Install community themes:
/plugins install zyn-theme-matrix
/theme matrixExtend Zyn with community plugins from npm or a local folder. Plugins are intentionally powerful: they can add themes, tools, slash commands, prompts, UI components, and behavior changes.
/plugins # Open plugin manager
/plugins list # List installed plugins
/plugins install zyn-theme-neon # Install from npm
/plugins install ./my-plugin # Install from a local folder
/plugins search skill # Search for skill plugins
/plugins uninstall zyn-theme-neonCreate a folder with a package.json and a manifest.json:
{
"name": "zyn-plugin-example",
"version": "1.0.0",
"main": "index.js"
}{
"name": "zyn-plugin-example",
"version": "1.0.0",
"type": "command",
"description": "Adds a custom Zyn command",
"author": "you"
}Supported type values:
theme— color schemes and visual stylesskill— AI skills with YAML frontmattertool— custom tools such as API calls or scriptsprompt— system-prompt additions or replacementscommand— slash commandsui— UI componentssystem— advanced behavior changes
Security and responsibility: Zyn asks for consent before installing plugins. By accepting, you acknowledge that a plugin can modify Zyn behavior and that you are responsible for what you install. Only install trusted plugins and review their source code first.
Connect to Model Context Protocol servers for external tools. Zyn accepts a single JSON object so the format is explicit and copy/paste friendly.
/mcp # Open MCP manager
/mcp connect {"name":"deepwiki","url":"https://mcp.deepwiki.com/mcp"}
/mcp connect {"name":"local","url":"http://localhost:8080"}
/mcp connect {"name":"fs","command":"npx","args":["-y","@modelcontextprotocol/server-filesystem","."]}
/mcp list # List configured servers
/mcp tools deepwiki # List discovered tools
/mcp disconnect deepwiki # Disconnectname(required): stable name used in tool names, for exampledeepwiki.url: HTTP/SSE/streamable HTTP endpoint, for examplehttps://mcp.deepwiki.com/mcp.command+args: stdio server process instead of a URL.headers: optional HTTP headers.env: optional environment variables for stdio servers.cwd: optional working directory for stdio servers.protocolorformat: optional; usejsonrpcto force streamable JSON-RPC. URLs ending in/mcpare auto-detected as JSON-RPC endpoints.
When a server connects, Zyn discovers its tools and injects them into the system prompt under MCP TOOLS. The agent must use the exact mcp_<server>_<tool> name shown there.
Zyn stores runtime data outside the project folder, under the current user's home directory by default:
- Linux/macOS:
~/.zyn/ - Windows:
C:\\Users\\<User>\\.zyn\\
Sessions, transcripts, exports, background tasks, provider/model configuration, MCP servers, plugins, web UI data, session secrets, and OAuth/token files are written there instead of data/chat inside the repository. Set ZYN_DATA_DIR to override this location.
zyn/
├── zyn.js # Entry point
├── src/
│ ├── core/
│ │ ├── agent.js # Agent core (runAgentTurn, streaming, tool loop)
│ │ ├── prompts.js # System prompt, conversation formatting
│ │ └── skills.js # Skill loading (YAML frontmatter)
│ ├── cli/
│ │ ├── commands.js # Slash commands, provider config, plugin/MCP mgmt
│ │ ├── runtime.js # CLI interface
│ │ ├── print.js # Terminal output, streaming
│ │ └── selector.js # Interactive selectors
│ ├── tui/
│ │ └── app.mjs # TUI (Ink/React), themes, UI components
│ ├── tools/
│ │ └── index.js # Tool definitions, execution, validation
│ ├── providers/
│ │ ├── scraperClient.js # Provider routing, chat dispatch
│ │ ├── catalog.js # Model/provider catalog
│ │ └── *.js # Provider implementations (27+)
│ ├── utils/
│ │ ├── sessionStorage.js # Session state, history, memory
│ │ └── transcriptStorage.js # Transcript logging
│ └── i18n.js # English/Spanish translations
├── data/ # Bundled read-only assets (skills/catalog defaults)
├── package.json
└── README.md
git clone https://github.com/SoyMaycol/Zyn.git
cd Zyn
npm install
npm run check # Syntax check critical files
npm start # Run TUICode conventions:
- CommonJS for Node.js files (
.js) - ES Modules for TUI (
.mjs) - No emojis in TUI — use text symbols
- Spanish/English i18n for all user-facing strings
- Plugin marketplace UI
- More MCP server integrations
- Custom tool creation wizard
- Multi-session collaboration
- Voice input/output
- Custom theme builder
- Issues: https://github.com/SoyMaycol/Zyn/issues
- Discussions: https://github.com/SoyMaycol/Zyn/discussions
MIT © Maycol
