The self-improving AI agent — creates skills from experience, improves them during use, and runs anywhere
Project description
Eximia Agent ☤
The self-improving AI agent built by Nous Research. It's the only agent with a built-in learning loop — it creates skills from experience, improves them during use, nudges itself to persist knowledge, searches its own past conversations, and builds a deepening model of who you are across sessions. Run it on a $5 VPS, a GPU cluster, or serverless infrastructure that costs nearly nothing when idle. It's not tied to your laptop — talk to it from Telegram while it works on a cloud VM.
Use any model you want — Nous Portal, OpenRouter (200+ models), NovitaAI (AI-native cloud for Model API, Agent Sandbox, and GPU Cloud), NVIDIA NIM (Nemotron), Xiaomi MiMo, z.ai/GLM, Kimi/Moonshot, MiniMax, Hugging Face, OpenAI, or your own endpoint. Switch with eximia model — no code changes, no lock-in.
| A real terminal interface | Full TUI with multiline editing, slash-command autocomplete, conversation history, interrupt-and-redirect, and streaming tool output. |
| Lives where you do | Telegram, Discord, Slack, WhatsApp, Signal, and CLI — all from a single gateway process. Voice memo transcription, cross-platform conversation continuity. |
| A closed learning loop | Agent-curated memory with periodic nudges. Autonomous skill creation after complex tasks. Skills self-improve during use. FTS5 session search with LLM summarization for cross-session recall. Honcho dialectic user modeling. Compatible with the agentskills.io open standard. |
| Scheduled automations | Built-in cron scheduler with delivery to any platform. Daily reports, nightly backups, weekly audits — all in natural language, running unattended. |
| Delegates and parallelizes | Spawn isolated subagents for parallel workstreams. Write Python scripts that call tools via RPC, collapsing multi-step pipelines into zero-context-cost turns. |
| Runs anywhere, not just your laptop | Seven terminal backends — local, Docker, SSH, Singularity, Modal, Daytona, and Vercel Sandbox. Daytona and Modal offer serverless persistence — your agent's environment hibernates when idle and wakes on demand, costing nearly nothing between sessions. Run it on a $5 VPS or a GPU cluster. |
| Research-ready | Batch trajectory generation, Atropos RL environments, trajectory compression for training the next generation of tool-calling models. |
Quick Install
Linux, macOS, WSL2, Termux
curl -fsSL https://raw.githubusercontent.com/EXIMIA-AI-AGENCY/eximia-agent/main/scripts/install.sh | bash
Windows (native, PowerShell) — Early Beta
Heads up: Native Windows support is early beta. It installs and runs, but hasn't been road-tested as broadly as our Linux/macOS/WSL2 paths. Please file issues when you hit rough edges. For the most battle-tested Windows setup today, run the Linux/macOS one-liner above inside WSL2.
Run this in PowerShell:
irm https://raw.githubusercontent.com/EXIMIA-AI-AGENCY/eximia-agent/main/scripts/install.ps1 | iex
The installer handles everything: uv, Python 3.11, Node.js, ripgrep, ffmpeg, and a portable Git Bash (MinGit, unpacked to %LOCALAPPDATA%\eximia\git — no admin required, completely isolated from any system Git install). Eximia uses this bundled Git Bash to run shell commands.
If you already have Git installed, the installer detects it and uses that instead. Otherwise a ~45MB MinGit download is all you need — it won't touch or interfere with any system Git.
Android / Termux: The tested manual path is documented in the Termux guide. On Termux, Eximia installs a curated
.[termux]extra because the full.[all]extra currently pulls Android-incompatible voice dependencies.Windows: Native Windows is supported as an early beta — the PowerShell one-liner above installs everything, but expect rough edges and please file issues when you hit them. If you'd rather use WSL2 (our most battle-tested Windows path), the Linux command works there too. Native Windows install lives under
%LOCALAPPDATA%\eximia; WSL2 installs under~/.eximiaas on Linux. The only Eximia feature that currently needs WSL2 specifically is the browser-based dashboard chat pane (it uses a POSIX PTY — classic CLI and gateway both run natively).
After installation:
source ~/.bashrc # reload shell (or: source ~/.zshrc)
eximia # start chatting!
Getting Started
eximia # Interactive CLI — start a conversation
eximia model # Choose your LLM provider and model
eximia tools # Configure which tools are enabled
eximia config set # Set individual config values
eximia gateway # Start the messaging gateway (Telegram, Discord, etc.)
eximia setup # Run the full setup wizard (configures everything at once)
eximia claw migrate # Migrate from OpenClaw (if coming from OpenClaw)
eximia update # Update to the latest version
eximia doctor # Diagnose any issues
CLI vs Messaging Quick Reference
Eximia has two entry points: start the terminal UI with eximia, or run the gateway and talk to it from Telegram, Discord, Slack, WhatsApp, Signal, or Email. Once you're in a conversation, many slash commands are shared across both interfaces.
| Action | CLI | Messaging platforms |
|---|---|---|
| Start chatting | eximia |
Run eximia gateway setup + eximia gateway start, then send the bot a message |
| Start fresh conversation | /new or /reset |
/new or /reset |
| Change model | /model [provider:model] |
/model [provider:model] |
| Set a personality | /personality [name] |
/personality [name] |
| Retry or undo the last turn | /retry, /undo |
/retry, /undo |
| Compress context / check usage | /compress, /usage, /insights [--days N] |
/compress, /usage, /insights [days] |
| Browse skills | /skills or /<skill-name> |
/<skill-name> |
| Interrupt current work | Ctrl+C or send a new message |
/stop or send a new message |
| Platform-specific status | /platforms |
/status, /sethome |
For the full command lists, see the CLI guide and the Messaging Gateway guide.
Documentation
All documentation lives at eximia-agent.nousresearch.com/docs:
| Section | What's Covered |
|---|---|
| Quickstart | Install → setup → first conversation in 2 minutes |
| CLI Usage | Commands, keybindings, personalities, sessions |
| Configuration | Config file, providers, models, all options |
| Messaging Gateway | Telegram, Discord, Slack, WhatsApp, Signal, Home Assistant |
| Security | Command approval, DM pairing, container isolation |
| Tools & Toolsets | 40+ tools, toolset system, terminal backends |
| Skills System | Procedural memory, Skills Hub, creating skills |
| Memory | Persistent memory, user profiles, best practices |
| MCP Integration | Connect any MCP server for extended capabilities |
| Cron Scheduling | Scheduled tasks with platform delivery |
| Context Files | Project context that shapes every conversation |
| Architecture | Project structure, agent loop, key classes |
| Contributing | Development setup, PR process, code style |
| CLI Reference | All commands and flags |
| Environment Variables | Complete env var reference |
Migrating from OpenClaw
If you're coming from OpenClaw, Eximia can automatically import your settings, memories, skills, and API keys.
During first-time setup: The setup wizard (eximia setup) automatically detects ~/.openclaw and offers to migrate before configuration begins.
Anytime after install:
eximia claw migrate # Interactive migration (full preset)
eximia claw migrate --dry-run # Preview what would be migrated
eximia claw migrate --preset user-data # Migrate without secrets
eximia claw migrate --overwrite # Overwrite existing conflicts
What gets imported:
- SOUL.md — persona file
- Memories — MEMORY.md and USER.md entries
- Skills — user-created skills →
~/.eximia/skills/openclaw-imports/ - Command allowlist — approval patterns
- Messaging settings — platform configs, allowed users, working directory
- API keys — allowlisted secrets (Telegram, OpenRouter, OpenAI, Anthropic, ElevenLabs)
- TTS assets — workspace audio files
- Workspace instructions — AGENTS.md (with
--workspace-target)
See eximia claw migrate --help for all options, or use the openclaw-migration skill for an interactive agent-guided migration with dry-run previews.
Contributing
We welcome contributions! See the Contributing Guide for development setup, code style, and PR process.
Quick start for contributors — clone and go with setup-eximia.sh:
git clone https://github.com/EXIMIA-AI-AGENCY/eximia-agent.git
cd eximia-agent
./setup-eximia.sh # installs uv, creates venv, installs .[all], symlinks ~/.local/bin/eximia
./eximia # auto-detects the venv, no need to `source` first
Manual path (equivalent to the above):
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv .venv --python 3.11
source .venv/bin/activate
uv pip install -e ".[all,dev]"
scripts/run_tests.sh
RL Training (optional): The RL/Atropos integration (
environments/) — seeCONTRIBUTING.mdfor the full setup.
Community
- 💬 Discord
- 📚 Skills Hub
- 🐛 Issues
- 🔌 EximiaClaw — Community WeChat bridge: Run Eximia Agent and OpenClaw on the same WeChat account.
License
MIT — see LICENSE.
Built by Nous Research.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eximia_agent-0.13.6.tar.gz.
File metadata
- Download URL: eximia_agent-0.13.6.tar.gz
- Upload date:
- Size: 7.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbc0a722e2861a4b27bb04139296783baf38427983b2897d62003654c620641e
|
|
| MD5 |
9ac990d9ed10e1fdf0d95fb1c53a2ea3
|
|
| BLAKE2b-256 |
60a0358a86e7b341a362b8d610e3b263cd549b1574edb4e860392d81a68731dc
|
Provenance
The following attestation bundles were made for eximia_agent-0.13.6.tar.gz:
Publisher:
publish-pypi.yml on EXIMIA-AI-AGENCY/eximia-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eximia_agent-0.13.6.tar.gz -
Subject digest:
cbc0a722e2861a4b27bb04139296783baf38427983b2897d62003654c620641e - Sigstore transparency entry: 1546221322
- Sigstore integration time:
-
Permalink:
EXIMIA-AI-AGENCY/eximia-cli@8e3145a513a2ee630bc31d3f5397a029ca62013e -
Branch / Tag:
refs/tags/v0.13.6 - Owner: https://github.com/EXIMIA-AI-AGENCY
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8e3145a513a2ee630bc31d3f5397a029ca62013e -
Trigger Event:
push
-
Statement type:
File details
Details for the file eximia_agent-0.13.6-py3-none-any.whl.
File metadata
- Download URL: eximia_agent-0.13.6-py3-none-any.whl
- Upload date:
- Size: 4.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6cccd01550b6ef17a7ac85c295d13fddc990beedcb79b9dc1b57549e9040cea
|
|
| MD5 |
67d9f0da892f490061f984ec7bd35070
|
|
| BLAKE2b-256 |
6a2a261253bafe774e46cd4dcc82f76a39b6c595e040d3ea820cf313c4810e80
|
Provenance
The following attestation bundles were made for eximia_agent-0.13.6-py3-none-any.whl:
Publisher:
publish-pypi.yml on EXIMIA-AI-AGENCY/eximia-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eximia_agent-0.13.6-py3-none-any.whl -
Subject digest:
c6cccd01550b6ef17a7ac85c295d13fddc990beedcb79b9dc1b57549e9040cea - Sigstore transparency entry: 1546221339
- Sigstore integration time:
-
Permalink:
EXIMIA-AI-AGENCY/eximia-cli@8e3145a513a2ee630bc31d3f5397a029ca62013e -
Branch / Tag:
refs/tags/v0.13.6 - Owner: https://github.com/EXIMIA-AI-AGENCY
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8e3145a513a2ee630bc31d3f5397a029ca62013e -
Trigger Event:
push
-
Statement type: