Documentation
Introduction
Hyllus is an autonomous agent that runs on your machine and answers to you alone. It plans, builds, executes and verifies real work — code, files, shell, research, long-running tasks — through two surfaces: your terminal and your Discord. More surfaces are coming; the agent is the constant, the surface is your choice.
There is no account, no telemetry, no hosted middle layer. You bring your own API keys, they stay on your disk, and every request goes directly from your machine to the model provider you chose. Distribution is CLI-only by design — the terminal is the download.
Principles
| Principle | Meaning |
|---|---|
autonomous | Point it at a goal. It plans, executes, and returns with a finished result — not a suggestion. |
anonymous | No sign-up, no identity, no phone-home. Hyllus knows you as the person holding the keys. |
verified | A task is done when it is proven done — builds run, tests pass, output checked. Never claimed, never assumed. |
local | Config, memory, history and keys live in your home directory. Delete the folder and Hyllus never existed. |
npx hyllus is not live for you yet, watch the X account for the drop.Quickstart
Three minutes from zero to a working agent.
1 · Requirements
| Requirement | Detail |
|---|---|
| Node.js | v20 or newer (npx ships with it) |
| OS | macOS · Linux · Windows 10+ |
| An API key | From any supported provider — one is enough. OpenRouter is the fastest single-key path to 340+ models. |
2 · Run
$ npx hyllus ██╗ ██╗██╗ ██╗██╗ ██╗ ██╗ ██╗███████╗ ██║ ██║╚██╗ ██╔╝██║ ██║ ██║ ██║██╔════╝ ███████║ ╚████╔╝ ██║ ██║ ██║ ██║███████╗ ██╔══██║ ╚██╔╝ ██║ ██║ ██║ ██║╚════██║ ██║ ██║ ██║ ███████╗███████╗╚██████╔╝███████║ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝ ╚═════╝ ╚══════╝ ΥΛΛΟΣ — WELCOME TO HYLLUS · v0.1.0 ──────────────────────────────────── [1] LAUNCH start hyllus now [2] CONFIGURE provider · model · surfaces · persona
First run walks you through picking a provider and pasting a key. The key is written to ~/.hyllus/config.json with file permissions 600 and never leaves your machine.
3 · Give it work
you ▸ scaffold a fastify api with sqlite, auth, and tests. run them. hyllus ▸ plan: scaffold → wire db → auth routes → tests → verify ▸ exec npm init fastify@latest api ✓ ▸ write src/db.ts · src/auth.ts · test/ ✓ ▸ exec npm test — 14 passing ✓ hyllus ▸ done. verified — not assumed.
Installation
Ephemeral (recommended)
$ npx hyllus # always runs the latest published version
Global
$ npm install -g hyllus $ hyllus
Updating
npx hyllus is always current. A global install updates with npm update -g hyllus, or from inside Hyllus with hyllus update.
Where things live
| Path | Contents |
|---|---|
~/.hyllus/config.json | Providers, keys, model choices, surface settings, autonomy level |
~/.hyllus/persona.md | Your agent's personality (optional) |
~/.hyllus/memory.json | Facts and preferences it keeps across sessions |
~/.hyllus/tasks/ | Long-task ledgers — survive restarts and resume |
~/.hyllus/audit.jsonl | Append-only log of every action taken |
Uninstall
$ npm uninstall -g hyllus # if installed globally $ rm -rf ~/.hyllus # removes every trace
Configuration
Everything is configurable from inside the CLI ([2] CONFIGURE or /config), but the file is plain JSON and yours to edit.
{
"provider": "anthropic",
"model": "claude-fable-5",
"fastModel": "claude-haiku-4-5",
"keys": { "anthropic": "sk-ant-…", "openrouter": "sk-or-…" },
"autonomy": "ask", // "ask" | "auto"
"surfaces": {
"terminal": true,
"discord": { "enabled": true, "token": "…", "owner": "auto-claim" }
},
"persona": "./persona.md",
"memory": { "enabled": true, "cap": 1000 },
"theme": "mono"
}| Key | Values | What it does |
|---|---|---|
provider | any supported id | Active provider for real tasks |
model | provider model id | Primary model — used for all agentic work |
fastModel | provider model id | Cheap model for chit-chat routing (optional) |
autonomy | ask / auto | Whether risky actions pause for your approval |
memory.cap | number | Max stored memory entries (oldest unpinned evicted) |
Environment overrides
$ ANTHROPIC_API_KEY=sk-… npx hyllus # keys can come from env $ HYLLUS_MODEL=claude-fable-5 npx hyllus # any config key: HYLLUS_<KEY>
Providers
Eight providers are first-class. Add keys for as many as you want and switch freely — even mid-session.
| Provider | Env var | Notes |
|---|---|---|
| Anthropic | ANTHROPIC_API_KEY | claude-fable-5, opus, haiku — strongest agentic lineup |
| OpenRouter | OPENROUTER_API_KEY | 340+ models behind one key — the fastest way to try everything |
| OpenAI | OPENAI_API_KEY | gpt + o-series |
| Groq | GROQ_API_KEY | extreme-speed inference for open models |
| DeepSeek | DEEPSEEK_API_KEY | v3 / r1 — strong price-to-power |
| xAI | XAI_API_KEY | grok family |
| Together | TOGETHER_API_KEY | open models at scale |
| Mistral | MISTRAL_API_KEY | large, codestral |
Adding a key
you ▸ /keys ANTHROPIC sk-ant-…D4 ✓ OPENROUTER — not set paste a key to add · keys are stored locally, chmod 600
Models
Model lists are fetched live from each provider when you open the picker — new models appear the day they ship, without updating Hyllus.
you ▸ /model ANTHROPIC claude-fable-5 ● claude-opus-4-8 claude-haiku-4-5 OPENROUTER 342 models — type to filter you ▸ /model claude-opus-4-8 hyllus ▸ model set. next task runs on opus.
Routing
Real tasks always run on your chosen model. If fastModel is set, plain conversation is routed there to save cost; any hint of actual work escalates to the primary model automatically. If the fast model errors, Hyllus falls back to the primary silently.
CLI reference
| Command | What it does |
|---|---|
hyllus | Opens the welcome screen — launch or configure |
hyllus launch | Skips the menu, straight into the agent |
hyllus config | Interactive configuration (provider, model, surfaces, persona) |
hyllus discord | Guided Discord bot setup and start |
hyllus memory | View, pin, or clear stored memory |
hyllus doctor | Self-test: node version, keys, connectivity, file permissions |
hyllus update | Update a global install to the latest version |
Flags
| Flag | Effect |
|---|---|
--provider <id> | Override provider for this session |
--model <id> | Override model for this session |
--auto | Start in full-auto (no approval pauses — gates still hold) |
--headless "task" | Run one task, print the result, exit — for scripts and cron |
--version | Print version and exit |
# nightly dependency audit at 03:00 0 3 * * * npx hyllus --headless "audit deps in ~/api, write report to ~/reports"
Chat commands
Inside a session — terminal or Discord — these work anywhere:
| Command | What it does |
|---|---|
/model [id] | Show the live model picker, or switch directly |
/provider [id] | Switch provider |
/auto on|off | Toggle full-auto for this session |
/task | Show the live task: plan, current step, elapsed |
/tasks | List running and completed long tasks |
/memory | What Hyllus remembers about this workspace |
/forget <n> | Delete a memory entry |
/persona | View or edit the active personality |
/keys | Manage provider keys |
/clear | New conversation (memory persists) |
/help | All commands |
Terminal
The terminal is the primary surface: a chat that can act. Every action the agent takes renders as a live step line — ▸ exec, ▸ write, ▸ verify — so you watch the work happen, not a spinner.
Long tasks
Tasks that outlive the session are written to a ledger in ~/.hyllus/tasks/. Kill the terminal, come back, run /tasks — Hyllus offers to resume exactly where it stopped.
Approvals
hyllus ▸ next step deletes 3 files in ./legacy — proceed? [y/N]
you ▸ y
▸ exec rm legacy/{a,b,c}.ts ✓In ask mode (default), destructive or outward-facing steps pause like this. In automode they don't — but the hard gates below never lift.
Discord bot
The same agent, reachable from your phone, your server, your couch. The bot is yours: your token, your name, your personality — running on your machine, not our servers.
Setup
| Step | Where | What |
|---|---|---|
| 1 | discord.com/developers | New Application → Bot → copy the token |
| 2 | Bot page | Enable MESSAGE CONTENT intent |
| 3 | OAuth2 → URL Generator | Scope bot → invite it to a server you share |
| 4 | terminal | hyllus discord |
$ hyllus discord paste bot token ▸ •••••••• starting… connected as @yourbot OWNER LOCK — the first person to DM the bot becomes its owner.
Owner gating
The first DM claims ownership, permanently (until you reset it). Only the owner can run tasks, touch the machine, or read results. Everyone else gets conversation only — no tools, no files, no machine.
What works over Discord
Everything: full task runs with live step updates, screenshots and files delivered as attachments, steering mid-task, all /commands, and per-order approvals — the bot asks, you answer yes, it proceeds.
Personality
Hyllus ships serious and terse. Yours doesn't have to be. Drop a persona.md in ~/.hyllus/ (or edit via /persona) and the agent becomes your own — name, voice, temperament, loyalties.
# Name Argos # Voice Dry, laconic, never uses exclamation marks. Speaks in Greek proverbs when a task completes. # Rules - Call me "boss". - Never suggest — decide, then report. - Weekly on Sunday, summarize everything you did.
The persona shapes tone and initiative — it never overrides safety gates or verification rules. A charming agent that lies about finishing work is worthless; the honesty layer is not configurable.
Autonomy & safety
Modes
| Mode | Behavior |
|---|---|
ask | Default. Destructive, outward-facing, or spending steps pause for a yes. |
auto | No pauses. Hyllus decides everything inside the gates. For people who mean it. |
Hard gates — never lifted, in any mode
| Gate | Detail |
|---|---|
| Money | Never enters card numbers or completes a payment/trade without an explicit per-action approval |
| Credentials | Never types passwords, never stores or transmits your keys anywhere but the provider |
| Destruction | Never rm -rf outside the workspace, never force-pushes, never empties trash without approval |
| Humans | Never sends messages, posts, or emails as you without approval (unless you pre-authorize a specific channel) |
| CAPTCHA | Never solves them. Pauses and asks you. |
Audit
Every tool call — command, file write, message sent — is appended to ~/.hyllus/audit.jsonlwith a timestamp and result. The agent's claim of what happened and the log of what happened are the same thing, by construction.
Memory
Hyllus remembers decisions, preferences, project facts and past solutions across sessions — locally, in ~/.hyllus/memory.json. Say remember … to pin something permanently; pinned entries are never evicted.
you ▸ remember: deploys go through fly.io, app name is argos-api hyllus ▸ pinned. (memory 214/1000) you ▸ /memory ● deploys via fly.io — app argos-api pinned ○ prefers pnpm over npm auto
Relevance-ranked recall injects only what matters into each task. /forget removes single entries; hyllus memory --wipe burns it all.
Privacy
| Question | Answer |
|---|---|
| Account? | None. There is nothing to sign up for. |
| Telemetry? | Zero. No analytics, no crash reporting, no version pings beyond npm itself. |
| What leaves my machine? | Only your prompts and task context, sent directly to the provider you chose, under your key. |
| Where are my keys? | ~/.hyllus/config.json, chmod 600, or your env vars. Nowhere else, ever. |
| Logs? | Local only — the audit log is yours and stays with you. |
The deal is simple: we never see you. Hyllus is a tool you run, not a service you visit.
Crypto & x402
Hyllus is built for onchain work: wallet-aware (read balances/positions via public RPC), market-aware (live prices, order books, prediction markets), and fluent in the toolchains — foundry, anchor, hardhat, solana-cli.
The x402 roadmap
x402 revives HTTP 402 — machine-payable requests. An agent that can pay per-call for the APIs, data and compute it needs, without accounts or subscriptions, is an agent that can operate truly alone. Hyllus will speak x402 natively: hit a paywalled endpoint, read the price, pay from an allowance you cap, get the data, keep moving.
| Stage | Ships |
|---|---|
| Now | Read-only wallet awareness, market data, onchain dev toolchains |
| Next | x402 client — per-call payments from a hard-capped allowance |
| Later | Agent-to-agent payments; Hyllus as an x402 server selling its own work |
Troubleshooting
| Symptom | Cause · fix |
|---|---|
command not found: npx | Node.js missing or ancient — install Node 20+ from nodejs.org |
401 unauthorized | Bad or revoked key — re-add via /keys, check the provider console |
429 / rate limited | Hyllus retries once automatically; persistent 429 means your provider tier is throttled |
Discord bot silent | MESSAGE CONTENT intent not enabled, or you're not the claimed owner |
Windows: scripts disabled | PowerShell policy — run Set-ExecutionPolicy -Scope CurrentUser RemoteSigned |
garbled box characters | Terminal font lacks box-drawing glyphs — use any modern mono font |
Still stuck? hyllus doctor runs a full self-test — node, keys, connectivity, permissions — and prints exactly what is wrong.
FAQ
| Question | Answer |
|---|---|
| Is Hyllus free? | The CLI is free. You pay your model provider directly — Hyllus adds nothing on top. |
| Which model should I use? | claude-fable-5 for the hardest agentic work; OpenRouter if you want to shop around with one key. |
| Does it work offline? | No — the intelligence is the model, and the model is an API. Everything else is local. |
| Can it run on a server? | Yes. It's a Node CLI — run it headless, in tmux, in CI, or behind your Discord bot on a VPS. |
| How is this different from a chatbot? | A chatbot answers. Hyllus acts — executes, verifies, and reports what actually happened. |
| Why 'Hyllus'? | Son of Herakles. Built to finish what was started. |
Changelog
v0.1.0 — the first cut
| Area | Shipped |
|---|---|
| Core | Agent loop (plan → execute → verify), 8 providers, live model fetching, fast-model routing |
| Surfaces | Terminal chat + Discord bot with owner lock and custom persona |
| Autonomy | ask/auto modes, hard gates, append-only audit log, headless mode |
| Memory | Persistent local memory with pinning and relevance recall; resumable task ledgers |
Next: Telegram surface · x402 client · playbooks (procedural memory) · subagents.