A self-evolving agent that lives on your phone and commands a fleet of servers
3
stars
0
commits
TypeScript
primary language
Sep 7, 2026
updated
Your phone is the agent. Your servers are its hands.
A self-evolving AI agent framework that runs anywhere — including the Android phone in your pocket. I stopped carrying a laptop: the agent lives on my phone (Termux) and reaches out to my servers, an overseas VPS, even the Mac under my desk, over a single WebSocket.
Claude Code taught the world what agent loops look like. Novus asks the other question: how small can the core be?
No bundling of heavyweight SDKs, no vendor lock-in. Just the loop: perceive → think → act → remember → evolve.
Not "self-improving" as a marketing word. The loop is concrete — and it ran, end to end, on the day this README was being written:
Bug → self-diagnosis → self-patch → self-deploy → lesson stored. No human typed a line of that fix. The maintainer watched it happen, then updated this README.
(The federation layer itself ships in v1.2 — see Roadmap.)
git clone https://github.com/RexHuang/novus.git && cd novus
npm install && npm run build
Android: install Termux from F-Droid first — the Play Store build is outdated and won't work. Then
pkg install nodejs-lts git python make clang(the native module needs a small toolchain), and everything below works as-is. Step-by-step guide: MOBILE.md.
Windows: install Git for Windows first — it provides the
gitandbashcommands Novus shells out to. Run from Git Bash, WSL, or plain cmd/PowerShell once it's installed.
Set your LLM endpoint — any Anthropic-protocol compatible API works:
# Native (recommended)
export NOVUS_BASE_URL="https://api.anthropic.com"
export NOVUS_AUTH_TOKEN="sk-ant-..."
export NOVUS_MODEL="claude-sonnet-4-20250514"
# Or use your existing Claude Code env vars — picked up automatically
# ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN / ANTHROPIC_MODEL
Works out of the box with Anthropic, DeepSeek, Zhipu GLM, Moonshot Kimi, OpenRouter, LiteLLM gateways, and local servers.
read any jpg/png/gif/webp/bmp file and it is sent to the model as an image block — provided your NOVUS_MODEL is multimodal (e.g. Claude Sonnet). Pure-text models will silently ignore images..ts in src/tools/custom/ that calls any image API — see Dynamic tools).npm link # one-time: register the `novus` command globally
novus # interactive chat
novus -p "fix the failing tests in this repo"
novus --serve --port 24999 # HTTP API + web UI
Already a Claude Code user? You're done — Novus reads your existing
ANTHROPIC_*environment.
| Capability | What it means |
|---|---|
| 🧠 Three-layer memory | Knowledge base (semantics), episodic experience (war stories), project memory (state) — all persistent across sessions |
| 🧬 Self-evolution | An evolution tracker + behavior guard that watches the agent's own tool-call patterns and injects corrective rules into future prompts |
| 🔌 Dynamic tools | Drop a .ts file in src/tools/custom/, it auto-registers. No config, no boilerplate |
| 🌐 Senses | Web fetching (raw/article/feed, optional headless-browser mode), GitHub integration, codebase mapping |
| 📋 Planning | Plans with dependency tracking, execution tracing, auto-execute script generation |
| 🤖 Autonomous tasks | Schedule recurring agent tasks (on-start, periodic, event-triggered) |
| 📱 Termux-native | Android storage mirroring, wake locks — designed to actually live on a phone |
| 🔓 MCP server | Expose Novus memory as MCP tools for other agents |
Novus has been my daily driver for one month of intense use: 140+ sessions, 560 knowledge entries accumulated. It maintains a 3-node deployment (phone ↔ cloud VM ↔ overseas VPS) that self-heals, ships daily news digests, and publishes articles. The agent wrote parts of its own release tooling. This README's narrative was drafted by Novus itself.
The multi-node federation layer is not open-sourced (yet) — see Roadmap.
Novus did not start as an architecture diagram. It started as a seed — a minimal agent loop — and every capability you see was grown in response to a real problem the agent hit the day before:
Every feature here exists because the agent using it demanded it. The maintainer's job was mostly to say yes.
You'll notice there's no plugin marketplace and no "skills" framework. That's deliberate, not an oversight. A plugin system is how you add capabilities to a system that can't grow its own — and this one grows its own. A tree grown from a seed has no seams; an assembly of parts does. Plugins may still come someday, when a capability genuinely can't be grown. So far, none has.
See CONTRIBUTING.md. Good first issues: tool ideas, Termux/Android quirks, docs translations.
Apache 2.0 — see LICENSE. Built on pi-agent-core (MIT).
TypeScript
94.9%
HTML
5.1%
A self-evolving agent that lives on your phone and commands a fleet of servers
3
stars
0
commits
TypeScript
primary language
Sep 7, 2026
updated
Your phone is the agent. Your servers are its hands.
A self-evolving AI agent framework that runs anywhere — including the Android phone in your pocket. I stopped carrying a laptop: the agent lives on my phone (Termux) and reaches out to my servers, an overseas VPS, even the Mac under my desk, over a single WebSocket.
Claude Code taught the world what agent loops look like. Novus asks the other question: how small can the core be?
No bundling of heavyweight SDKs, no vendor lock-in. Just the loop: perceive → think → act → remember → evolve.
Not "self-improving" as a marketing word. The loop is concrete — and it ran, end to end, on the day this README was being written:
Bug → self-diagnosis → self-patch → self-deploy → lesson stored. No human typed a line of that fix. The maintainer watched it happen, then updated this README.
(The federation layer itself ships in v1.2 — see Roadmap.)
git clone https://github.com/RexHuang/novus.git && cd novus
npm install && npm run build
Android: install Termux from F-Droid first — the Play Store build is outdated and won't work. Then
pkg install nodejs-lts git python make clang(the native module needs a small toolchain), and everything below works as-is. Step-by-step guide: MOBILE.md.
Windows: install Git for Windows first — it provides the
gitandbashcommands Novus shells out to. Run from Git Bash, WSL, or plain cmd/PowerShell once it's installed.
Set your LLM endpoint — any Anthropic-protocol compatible API works:
# Native (recommended)
export NOVUS_BASE_URL="https://api.anthropic.com"
export NOVUS_AUTH_TOKEN="sk-ant-..."
export NOVUS_MODEL="claude-sonnet-4-20250514"
# Or use your existing Claude Code env vars — picked up automatically
# ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN / ANTHROPIC_MODEL
Works out of the box with Anthropic, DeepSeek, Zhipu GLM, Moonshot Kimi, OpenRouter, LiteLLM gateways, and local servers.
read any jpg/png/gif/webp/bmp file and it is sent to the model as an image block — provided your NOVUS_MODEL is multimodal (e.g. Claude Sonnet). Pure-text models will silently ignore images..ts in src/tools/custom/ that calls any image API — see Dynamic tools).npm link # one-time: register the `novus` command globally
novus # interactive chat
novus -p "fix the failing tests in this repo"
novus --serve --port 24999 # HTTP API + web UI
Already a Claude Code user? You're done — Novus reads your existing
ANTHROPIC_*environment.
| Capability | What it means |
|---|---|
| 🧠 Three-layer memory | Knowledge base (semantics), episodic experience (war stories), project memory (state) — all persistent across sessions |
| 🧬 Self-evolution | An evolution tracker + behavior guard that watches the agent's own tool-call patterns and injects corrective rules into future prompts |
| 🔌 Dynamic tools | Drop a .ts file in src/tools/custom/, it auto-registers. No config, no boilerplate |
| 🌐 Senses | Web fetching (raw/article/feed, optional headless-browser mode), GitHub integration, codebase mapping |
| 📋 Planning | Plans with dependency tracking, execution tracing, auto-execute script generation |
| 🤖 Autonomous tasks | Schedule recurring agent tasks (on-start, periodic, event-triggered) |
| 📱 Termux-native | Android storage mirroring, wake locks — designed to actually live on a phone |
| 🔓 MCP server | Expose Novus memory as MCP tools for other agents |
Novus has been my daily driver for one month of intense use: 140+ sessions, 560 knowledge entries accumulated. It maintains a 3-node deployment (phone ↔ cloud VM ↔ overseas VPS) that self-heals, ships daily news digests, and publishes articles. The agent wrote parts of its own release tooling. This README's narrative was drafted by Novus itself.
The multi-node federation layer is not open-sourced (yet) — see Roadmap.
Novus did not start as an architecture diagram. It started as a seed — a minimal agent loop — and every capability you see was grown in response to a real problem the agent hit the day before:
Every feature here exists because the agent using it demanded it. The maintainer's job was mostly to say yes.
You'll notice there's no plugin marketplace and no "skills" framework. That's deliberate, not an oversight. A plugin system is how you add capabilities to a system that can't grow its own — and this one grows its own. A tree grown from a seed has no seams; an assembly of parts does. Plugins may still come someday, when a capability genuinely can't be grown. So far, none has.
See CONTRIBUTING.md. Good first issues: tool ideas, Termux/Android quirks, docs translations.
Apache 2.0 — see LICENSE. Built on pi-agent-core (MIT).
TypeScript
94.9%
HTML
5.1%