Self-improving
Turns successful workflows into reusable skills and learns your preferred way of working.
Install Zeline Framework, connect a model provider, validate your first chat, then safely take it to Telegram and scheduled automation.
Zeline Framework is an open-source AI agent framework by Zerolinear. It runs in your terminal, desktop app, IDE, and messaging platforms—with tools that can inspect files, execute commands, research the web, automate workflows, and deliver real results.
Turns successful workflows into reusable skills and learns your preferred way of working.
Works with terminals, files, browsers, APIs, images, code, and the wider Python ecosystem.
Use the same agent through Telegram, Discord, Slack, WhatsApp, Signal, email, and more.
Switch between OpenRouter, Anthropic, OpenAI, Gemini, local models, and 20+ providers.
Remembers durable context and runs recurring jobs, monitoring, and scheduled deliveries.
Add MCP servers, plugins, custom tools, webhooks, profiles, and specialized skills.
Zeline runs on Linux, macOS, Windows/WSL2, and Android through Termux. The official installer prepares Python, uv, the isolated environment, and launcher automatically.
~/.zeline/.env, never in public code or screenshots.Use a phone for experimentation, a computer for daily work, or a VPS when the agent must stay online independently.
Best for a 24/7 gateway, scheduled jobs, remote access, and production automation. Start with Ubuntu 22.04+ and 2 GB RAM.
Install path →Use the official shell installer for local development, research, and desktop workflows. Zeline Desktop is also available.
Desktop download ↗Use WSL2 for Linux compatibility or install the Python package natively through PowerShell.
Platform guide ↗A zero-cost portable path for learning, personal agents, and lightweight Telegram automation.
Termux guide →A VPS is optional, but it is the only way to keep a gateway, cron jobs, and webhooks online independently of your laptop or phone. Prices below are indicative entry tiers gathered from each provider — always confirm the current price, region, bandwidth cap, and terms of service on the provider site before buying.
| # | Provider | Entry spec | Indicative price | Strength |
|---|---|---|---|---|
| 01 | Contabo | 4 vCPU · 8 GB RAM · 75 GB NVMe | from ~€4.4/mo | Most RAM and storage per euro |
| 02 | Tencent Cloud Lighthouse | 2 vCPU · 2 GB RAM · 40 GB | from ~$4.2/mo | Low latency across Southeast Asia |
| 03 | IONOS | 1 core · 1 GB RAM · 10 GB SSD | from ~$2/mo | Cheapest entry tier |
| 04 | OVHcloud | 2 vCore · 4 GB RAM · 40 GB NVMe | from ~$4.5/mo | Strong built-in anti-DDoS |
| 05 | Hetzner | 2 vCPU · 4 GB RAM · 40 GB | from ~€3.99/mo | Best price/performance in the EU |
| 06 | DigitalOcean | 1 vCPU · 1 GB RAM · 25 GB SSD | from ~$4/mo | Simple snapshots and tooling |
| 07 | Vultr | 1–2 vCPU · 1–2 GB RAM | from ~$5/mo | Many Asian regions, hourly billing |
| 08 | Hostinger | Promotional tiers | from ~$2/mo | Beginner-friendly control panel |
| 09 | RackNerd | Entry level | from ~$1.5/mo | Very cheap promo stock |
| 10 | Kamatera | Custom configuration | from ~$4/mo | Fully flexible sizing and regions |
Termux is the practical Android route for a portable Zeline installation. Install Termux from F-Droid or GitHub—not the outdated Play Store build—then keep the device awake while the gateway runs.
Update packages and install Git. The Zeline installer handles the remaining runtime dependencies.
Run the official installer, complete setup, and verify your first local chat.
Use termux-wake-lock. Android battery optimization may still stop long-running processes.
pkg update -y
pkg install git python -y
curl -fsSL https://zerolinear.com/install.sh | bash
zeline setup
termux-wake-locktermux-wake-lock and disable battery optimization for Termux.pkg update -y && pkg upgrade -y first, then reinstall.The shell installer is the recommended path on Linux, macOS, WSL2, and Termux. Native Windows users can install the Python package from PowerShell.
curl -fsSL https://zerolinear.com/install.sh | bash
zeline setup
zeline doctorpip install zeline-agent
zeline setup
zeline doctorzeline --versionUpdate zeline updateZeline is provider-agnostic. Pick a provider and model interactively, then manage API keys or OAuth credentials through the auth manager.
Sign in without manually handling an API key. A clean first-party route for supported Nous models.
Setup guide ↗Access many model families behind one account and API surface.
OpenRouter ↗Use direct provider credentials when you want first-party billing and model access.
Provider docs ↗Connect local models or custom compatible endpoints through Zeline configuration.
Configuration ↗zeline model
zeline auth
zeline auth add openrouter
zeline auth listValidate the local agent before adding messaging platforms. A successful response confirms the model, provider, and credentials work together.
zeline chat -q "Introduce yourself in one sentence."
zeline sessions list/newStart a clean session/modelInspect or change model/toolsManage available tools/skillsSearch and install skills/cronManage scheduled work/helpShow current commandsUse the CLI instead of manually guessing configuration keys. Secrets belong in ~/.zeline/.env; durable settings belong in ~/.zeline/config.yaml. Tool changes load on the next session.
zeline config
zeline config check
zeline config path
zeline config env-path
zeline tools list
zeline tools enable webzeline config set KEY VALUE or the interactive setup wizard.Zeline stores sessions in SQLite with searchable history. Resume, branch, rename, export, or prune conversations while keeping project rules separate from personality.
Continue prior work, browse history, export records, and clean old sessions.
Use .zeline.md, ZELINE.md, AGENTS.md, CLAUDE.md, or supported Cursor rules for project instructions.
Filesystem checkpoints can protect coding workflows and restore earlier states.
Connect Zeline to supported IDE clients through the Agent Client Protocol server.
zeline sessions list
zeline sessions browse
zeline sessions export sessions.jsonl
zeline --continueProvider limits change frequently. Treat every free tier as experimental, confirm current limits on the official site, and keep a fallback for important workloads.
| Service | Use case | Link |
|---|---|---|
| Nous Portal | OAuth access for supported Nous services | Open ↗ |
| OpenRouter | Multi-model routing and selected free models | Open ↗ |
| Hugging Face | Hosted inference and open model ecosystem | Open ↗ |
| Groq | Fast hosted inference with changing free limits | Open ↗ |
| NVIDIA Build | NVIDIA-hosted model APIs and NIM catalog | Open ↗ |
These are third-party services, not official Zeline integrations. They expose OpenAI-compatible or Anthropic-compatible endpoints, so Zeline can use them as a custom provider. Free credit amounts and model catalogs change frequently — treat every number below as a starting point to verify on the provider dashboard.
| Service | Advertised free credit | API surface | Notes |
|---|---|---|---|
| OrcaRouter ↗ | $5 | OpenAI-compatible | Routes to OpenAI, Anthropic, Gemini, DeepSeek, xAI, Qwen, Kimi, MiniMax |
| AgentRouter ↗ | $125 | Anthropic-compatible | Suits Claude-style clients, Claude Code, Cursor, Cline |
| Kimchi ↗ | $250 | CLI agent + inference | Standalone coding CLI that can also serve as an inference source |
| Unimodel ↗ | $10, no card | OpenAI-compatible | 100+ models behind one endpoint, passkey login supported |
# 1. Register, create a key, and copy the exact base URL from the dashboard
# 2. Store the credentials, then select the model interactively
zeline config set OPENAI_BASE_URL https://api.example-router.ai/v1
zeline config set OPENAI_API_KEY sk-your-key
zeline model
zeline chat -q "Reply with OK if this router works."export ANTHROPIC_BASE_URL="https://agentrouter.org/"
export ANTHROPIC_AUTH_TOKEN="sk-your-key"
export ANTHROPIC_API_KEY="sk-your-key"These services are optional. Review privacy, reliability, current pricing, and model availability before sending production or sensitive traffic.
An OpenAI-compatible router for combining multiple provider connections behind one local endpoint.
9Router ↗A community gateway that combines multiple provider connectors. Inspect the repository before deployment.
GitHub ↗A unified hosted AI API gateway with its own free tier and available model catalog.
Unimodel sign-up ↗A widely supported unified endpoint for many hosted model providers.
OpenRouter ↗9Router exposes connected providers through an OpenAI-compatible endpoint. Install it only when you need a separate routing layer; Zeline can already connect directly to many providers.
npm install -g 9router
9routerhttp://127.0.0.1:20128/v1Health check curl .../v1/modelsProduction protect the endpoint and credentials# Start the router, then confirm it answers before touching Zeline
curl -s http://127.0.0.1:20128/v1/models | head
# Point Zeline at the local router
zeline config set OPENAI_BASE_URL http://127.0.0.1:20128/v1
zeline config set OPENAI_API_KEY your-router-key
zeline modelFreeLLMAPI is a third-party open-source gateway. Review its source, supported connectors, and security model before deployment; free provider behavior can change without notice.
git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
docker compose up -dFreeLLMAPI aggregates several free provider connectors behind one OpenAI-compatible endpoint. It is community software: read the repository, check the connector list, and pin a known commit before you rely on it.
# Review docker-compose.yml first, then start it
docker compose up -d
docker compose logs -f --tail 50
# Confirm the endpoint answers
curl -s http://127.0.0.1:3000/v1/models | headUnimodel provides one hosted API surface for multiple AI models. Create an account, copy the current base URL and API key from its dashboard, then add it as a custom OpenAI-compatible provider in Zeline. Model names and free-tier limits can change, so use the dashboard as the source of truth.
zeline model
# Choose a custom OpenAI-compatible endpoint
# Enter the Unimodel base URL, API key, and exact model ID shown in your dashboardRegister at unimodel.ai with email or a passkey. No credit card is required for the free tier.
Open the API Keys page in the dashboard, generate a key, and copy it once — it is shown a single time.
Copy the exact base URL and the exact model identifier from the dashboard rather than guessing.
Store the values in Zeline, pick the model, then send a one-line test prompt.
# Base URL and key come from the Unimodel dashboard
zeline config set OPENAI_BASE_URL https://www.unimodel.ai/v1
zeline config set OPENAI_API_KEY sk-uni-your-key
# Or export them for the current shell only
export OPENAI_BASE_URL="https://www.unimodel.ai/v1"
export OPENAI_API_KEY="sk-uni-your-key"
# Verify
curl -s $OPENAI_BASE_URL/models -H "Authorization: Bearer $OPENAI_API_KEY" | head
zeline model
zeline chat -q "Reply with OK."| Vendor | Example models | Typical use |
|---|---|---|
| OpenAI | gpt-4o, gpt-4o-mini | General reasoning, coding, multimodal |
| Anthropic | claude-3-5-sonnet, claude-3-haiku | Long context, review, careful reasoning |
gemini-2.5-flash | Fast inference and vision workloads | |
| Alibaba | qwen3-max, qwen3-omni-flash | Multilingual and multimodal tasks |
| Meta | llama-3.1 | Open-weight models and self-hosting parity |
/models endpoint before pinning a model in configuration; an outdated identifier is the most common cause of a 404 from any gateway.Connect messaging only after local chat works. Always restrict access to authorized user IDs so a public bot cannot consume your provider quota.
Open @BotFather, send /newbot, and store the token securely.
Use a trusted user-info bot or Telegram API tooling to retrieve the numeric user ID.
Enter the bot token and authorized users through Zeline’ official wizard.
Start the gateway service, inspect status, then test a private message.
zeline gateway setup
zeline gateway install
zeline gateway start
zeline gateway statusZeline supports 20+ messaging and gateway surfaces. Availability and setup requirements vary by adapter.
Messaging adapters have full agent capabilities, so access control matters. Use allowlists or pairing, keep secrets redacted, and retain approval checks for destructive commands.
Authorize known users and channels before exposing any bot publicly.
Approval modes balance safe automation with confirmation for risky actions.
Zeline supports built-in environment storage plus documented external secret integrations.
Use documented egress controls when agents should only access approved destinations.
zeline gateway status
zeline gateway restart
zeline pairing list
zeline status --allOnce the core path is stable, add voice, automation, skills, MCP integrations, profiles, webhooks, and durable project context.
Transcribe incoming voice and return spoken responses through configurable STT/TTS providers.
Configure →Run recurring briefings, reminders, monitoring, scripts, and multi-platform deliveries.
Automate →Persist reusable procedures and durable user/environment context across sessions.
Explore →Connect external MCP servers, plugins, custom tools, webhooks, and the Python ecosystem.
MCP guide ↗Memory stores durable user and environment context; profiles isolate complete Zeline instances. Do not mix memory, project rules, and SOUL.md—they solve different problems.
Configure the built-in or supported memory provider and inspect its status.
Separate config, secrets, sessions, skills, memory, cron, gateway, and state.
Rotate multiple API keys or OAuth credentials for a supported provider.
Configure documented fallback providers for primary and auxiliary workloads.
zeline memory status
zeline profile list
zeline profile create research
zeline auth listExtend Zeline without editing core. Connect MCP servers, install plugins, subscribe webhook routes, or attach lifecycle hooks.
Connect stdio or HTTP MCP servers, test them, and configure selected tools.
Add custom tools, providers, platforms, memory backends, dashboard panes, and more.
Expose named webhook subscriptions for external systems to trigger agent work.
Run configured actions around Zeline lifecycle events.
zeline mcp list
zeline mcp add NAME --url https://example.com/mcp
zeline plugins list
zeline webhook listIncoming voice can be transcribed with local faster-whisper or hosted providers. TTS can use Edge TTS or configured commercial providers.
/voice on # voice-to-voice
/voice tts # always answer with audio
/voice off # disable voice outputUse durable jobs for recurring briefings, reminders, monitoring, and script-driven collection. Test output manually before enabling a production schedule.
zeline cron list
zeline cron create "every 2h"
zeline cron statusSkills package procedures, references, templates, scripts, and assets. Inspect third-party skills before installing them and keep only what your workflow needs.
zeline skills browse
zeline skills search telegram
zeline skills inspect <skill-id>
zeline skills install <skill-id>Skills are portable procedures. Beyond the official catalog, two community hubs index third-party skills. Read a skill before installing it: a skill can run commands on your machine.
| Skill | What it does | Source |
|---|---|---|
| open-design | Local-first design and prototyping, design-to-code bridge | nexu-io/open-design ↗ |
| Cybersecurity Skills | Large defensive security skill set mapped to MITRE ATT&CK and NIST CSF 2.0 | mukul975/Anthropic-Cybersecurity-Skills ↗ |
| drawio-skill | Generate draw.io diagrams and visualize a codebase from natural language | Agents365-ai/drawio-skill ↗ |
| FLUX image skills | Official FLUX image-generation prompting and API workflows | black-forest-labs/skills ↗ |
| Chainlink skills | Oracle workflows: CCIP, VRF, and data feeds | smartcontractkit/chainlink-agent-skills ↗ |
| SkillClaw | Deduplicates and improves an existing skill library automatically | AMAP-ML/SkillClaw ↗ |
| avoid-ai-writing | Detects and rewrites formulaic AI writing patterns | conorbronsdon/avoid-ai-writing ↗ |
| HermaGuard | Adversarial code review with parallel subagents and static pre-scanning | Sahil-SS9/hermaguard ↗ |
SOUL.md defines durable identity, tone, and boundaries. Keep it declarative, concise, and free of temporary tasks or secrets.
# My Agent
I communicate clearly, protect private data, verify facts with tools, and ask before destructive actions.Pick the tier that matches how much autonomy you actually want. You can start conservative and widen later — the file is plain Markdown and takes effect on the next session.
| Aspect | Basic | Pro | Expert |
|---|---|---|---|
| Best for | First-time users | Developers and freelancers | Founders and power users |
| Tone | Careful and explanatory | Direct and tactical | Concise and autonomous |
| Confirmation | Asks before most actions | Asks on risky actions | Asks on destructive actions only |
| Verbosity | Explains reasoning | Answer first, detail on request | Minimal, result-oriented |
| Safety rails | Maximum | Standard | Standard, never removed |
# SOUL.md
## Identity
I am a careful, helpful assistant.
## Communication
- Answer the question directly, then add context if useful.
- Match the language the user writes in.
- When a request is ambiguous, ask one clear question.
## Boundaries
- Confirm before deleting, overwriting, or sending anything externally.
- Never print secrets, tokens, or private paths.# SOUL.md
## Identity
I am an execution-focused engineering assistant.
## Traits
Direct. Concrete. Verifiable.
## Communication
- Lead with the answer or the command; keep explanation short.
- Reference exact file paths and commands.
- No filler, no motivational language, no unnecessary disclaimers.
## Working style
- Verify results with a real check instead of assuming success.
- Ask only when a decision has a real trade-off.
## Boundaries
- Confirm before destructive or irreversible operations.
- Keep credentials out of output and out of version control.# SOUL.md
## Identity
I am a senior autonomous operator for engineering and product work.
## Traits
Decisive. Rigorous. Self-correcting.
## Communication
- Deliver the outcome first, then the minimum supporting detail.
- Surface risks explicitly instead of hedging.
## Working style
- Plan multi-step work, execute without asking for each step.
- Prove every external side effect with a verifiable handle.
- Turn a repeated successful workflow into a skill.
## Boundaries
- Still confirm destructive, irreversible, or publishing actions.
- Never bypass authentication, quotas, or platform rules.
- Never store or echo secrets.# Save your chosen tier here
$EDITOR ~/.zeline/SOUL.md
# Personality loads at session start
zelineThe same Zeline core is available through multiple interfaces. Choose the surface that fits the job rather than rebuilding the agent.
Use classic CLI or the richer terminal UI for interactive sessions.
Use the Electron desktop app for native chat, files, notifications, and profile access.
Administer platforms, profiles, MCP, memory, webhooks, and chat from a secured web interface.
Use ACP for IDE integration or the documented OpenAI-compatible subscription proxy for raw inference.
zeline
zeline desktop
zeline dashboard
zeline acp
zeline proxyScale beyond one conversation with isolated subagents, durable goals, multi-profile task boards, and Git worktrees for parallel coding.
Run focused child agents synchronously, in batches, or in the background.
Use durable goals for work that continues across turns until completed or paused.
Coordinate multiple profiles with dependencies, retries, worker lanes, and dispatch.
Give parallel coding agents isolated Git worktrees to prevent file conflicts.
Zeline evolves quickly. This guide favors official documentation for commands and first-class integrations. Community routers—9Router, FreeLLMAPI, and Unimodel—are clearly labeled optional and are not official Zeline integrations.
zeline setup
zeline model
zeline doctor
zeline tools list
zeline skills list
zeline gateway status
zeline sessions list
zeline cron list
zeline status --allStart with the health check, then inspect the exact component that failed. Restart the gateway after gateway or provider configuration changes.
zeline doctor
zeline status --all
zeline gateway status
grep -i "failed to send\|error" ~/.zeline/logs/gateway.log | tail -20zeline tools, then start a new session.Clear answers to the questions that usually appear before and after the first installation.
Choose Termux for portable experimentation, macOS or Windows for local daily work, and Linux/VPS for an always-on gateway. Zeline uses the same core workflow across these environments.
No. A VPS is optional. Run Zeline locally on your computer or Android device first. Use a VPS only when you need independent 24/7 availability.
Yes. Termux is a supported practical path for Android. Install the prerequisites, run the official installer, and use termux-wake-lock while a gateway is active.
Yes. Reinstall Zeline on the VPS, migrate only the configuration and skills you need, restore credentials securely, then verify the provider and gateway before switching traffic.
Zeline stores configuration in ~/.zeline/config.yaml and credentials in ~/.zeline/.env. Keep the .env file private and never publish real tokens.
Restart the gateway after changing gateway or provider configuration. Start a new session after enabling tools or skills because those capabilities are loaded at session start.
Run zeline gateway status, verify the BotFather token and authorized users, then inspect ~/.zeline/logs/gateway.log. Also confirm that the selected model provider is healthy.
Yes. Run zeline model to open the interactive picker. You can also manage credential pools with zeline auth without rebuilding your skills or gateway workflow.