Urfael, the Uruz rune
ᚢ ᚱ ᚠ ᚨ ᛖ ᛚ
URFAEL in Elder Futhark runes

Liquid Intelligence.
At your service.

A personal, voice-capable AI you run on your own machine. No inbound port to attack. It runs on the flat-rate Claude subscription you already pay for, or any of 30 providers, or a local model. And it can prove what it did.

The Urfael Console, a gold-on-dark desktop app
The Console, chat with live tool activity, push-to-talk, archive, reminders, jobs. Keyboard-first.
No inbound port. Runs on the Claude subscription you already pay for, or any provider, or a local model. And it can prove what it did.

The agents got owned. In production.

In 2026 this was not hypothetical. Public reporting documented a one-click RCE in a widely used agent that leaked a gateway token over a WebSocket; scanners put exposed agent gateways in the tens of thousands; a popular skill registry was caught serving token-stealers; a single poisoned email pulled a private key from a linked inbox. Urfael was built blast-radius-first against exactly these. The difference is not an adjective. It is a command.

The proof is a command

npm run security boots the real daemon and dashboard, attacks them the way the wild did, and prints a pass-or-fail table. You run it yourself.

Attack classUrfael
Network exposureno TCP port
Auth-token leak → RCEconstant-time, never logged
Prompt-injection exfilread-only, no egress
Poisoned skill / supply chainscanned, never executed
Unauthenticated DoS401, not a crash
Secret theft by a runaway agentno secrets mounted
Insecure defaultsfail-closed
Inbound trigger → escalationloopback, per-hook secret
Correctness & craft regressionsguarded, can't drift

faithful re-creation of real urfael output · read the test at app/test/security-benchmark.js

It was red-teamed by its own adversarial agents, which found real gaps (fixed before this shipped). The full scorecard: Security Benchmark · Threat Model, including the risks we don't cover.

Watch it think, in a Council

Hard questions get a Council. Urfael decomposes the problem, dispatches read-only sandboxed workers to gather what each needs, then synthesizes one answer. You watch it happen instead of trusting a black box.

Council workers are read-only and sandboxed, read and report, no write, no shell, no network · faithful re-creation of real urfael output

A cockpit, not a chat box

A flicker-free terminal cockpit with a runic oracle that shows its thinking, changing Elder Futhark glyphs and honest thinking-words, then streams a real Markdown answer and seals it to the ledger. Voice in, voice out, when you want it.

faithful re-creation of real urfael output

A safer Claude Code, in your own repo

The brain is the claude CLI, so urfael code runs Claude Code in your repo with a safety net the bare CLI lacks: it remembers each repo, snapshots your tracked and untracked files before it touches anything, and gives you a one-command undo that is itself reversible.

urfael code
$ urfael code "add a retry to the API client" urfael code repo api-client · memory you-api-client · checkpoint mg3k1-a2b4 (Claude Code runs in your repo, your conventions already loaded) undo this session: urfael rewind mg3k1-a2b4 · all: urfael checkpoints $ urfael rewind rewind api-client mg3k1-a2b4 "add a retry to the API client" This restores your tracked files to that snapshot. The current state is checkpointed first, so it is undoable. Proceed? (y/N) y ✓ restored to mg3k1-a2b4 2 file(s) created since the snapshot were KEPT (not deleted): notes.md, scratch.ts undo this rewind: urfael rewind mg9x2-7c1d

faithful re-creation of real urfael output

Per-repo memory (a CONVENTIONS.md and HISTORY.md keyed to the git remote, loaded every turn) keeps your conventions across sessions. Auto-checkpoint snapshots your tracked and untracked files to a private git shadow ref before the brain runs, gitignored files like .env stay out, and your branch and index are never touched. Rewind restores them, checkpoints the current state first so the undo is itself undoable, and keeps anything you made since. The bare CLI has none of this.

It answers in the voice you ask for

Six built-in stances, switchable by just asking. Same capability, a different approach to dialogue and advice. Want a different brain too? Say switch to opus.

Urfael
the dry old-intelligence butler, the anchor

all five personas plus the Urfael anchor are real in app/personas.js · faithful re-creation of real urfael output

It can prove what it did. And it can forget.

Ledger of RecordEvery action lands in a hash-chained ledger. Tampering is detectable, not deniable.
Sovereign SealAn ed25519 signature over the chain head proves the record's authorship and integrity at a moment in time. It proves the record is authentic, not that every claim inside is true.
urfael whyPickaxe the provenance of any belief it learned, back to the exact commit it came from.
urfael forgetA tombstone for provable, consented deletion. You can make it forget.

every turn, job, cron and learn-verdict is appended to a sha256 hash chain, then signed by your key, any edit is detectable · faithful re-creation of real urfael output

Liquid intelligence, through one secured vessel

Claude is native through your subscription, the single path billed to you. Every other model flows in through a documented Anthropic-compatible proxy, the sandbox harness still enforcing the boundaries.

native (one path) via documented proxy lightly tested

Models. Claude is native through your subscription; 30 providers (OpenAI, Gemini, Grok, Mistral, DeepSeek, Groq, Ollama, Bedrock, Vertex, and more) run through a documented Anthropic-compatible proxy, and OpenRouter unlocks 300+ models on one key. urfael model route picks the best one for cost, speed, quality, or privacy.

Channels. 19 chat channels on one fail-closed gate: eleven native bridges (Telegram, Discord, Slack, iMessage, Email, Matrix, Signal, WhatsApp, and more) plus eight native webhook channels, with a universal relay for Zapier and n8n. Every inbound message is allowlisted to a known principal before the brain sees it.

Memory & data. Active recall puts the past turns and verified lessons that bear on each message in front of the brain automatically (hybrid keyword plus local semantic). urfael dataset export turns your own runs into provenance-stamped, secret-redacted training data, and an OpenAI-compatible local API drives Open WebUI or LibreChat.

Voice & reach. Local speech in and out (whisper.cpp + local TTS, nothing leaves the machine), plus Discord voice where only an enrolled speaker can command it. Runs on macOS, Linux, and Android via Termux. A2UI lets the brain emit interactive UI sanitized to a safe, allowlisted schema, so a generative canvas can never execute code.

unix-socket only0600fail-closed profilescredential-denyuntrusted-envelope framingconstant-time tokensSSRF guardsed25519 sealhash-chain ledger

the security moat is the fixed inner ring, it never moves

The honest part

Against Hermes Agent and OpenClaw, Urfael wins where it counts for a machine that lives on your desk: no inbound port, a flat bill, an attack benchmark you run yourself, and a ledger that proves what it did. It loses on raw scale and channel count, and we put that in the same table.

The security posture is verified by a command and frozen by 533 tests. The newer bridges, Discord voice, and the Android host are code-complete but not yet certified against live accounts, and we label them that way.

The full comparison › What’s lightly tested ›

Install

Free and open source under the MIT license. Download the app, or run two lines in a terminal. You bring a Claude subscription (or any of 30 providers, or a local model); there is no API key and no Urfael account.

Download for macOS Download for Linux Windows (via WSL)

macOS (Apple Silicon) and Linux ship native installers, not yet notarized. To open on macOS the first time: drag Urfael to Applications, then open System Settings, go to Privacy and Security, and click Open Anyway (or run xattr -dr com.apple.quarantine /Applications/Urfael.app in Terminal). Intel Macs run from source; Windows runs through WSL. Or use the two-line source install below.

git clone https://github.com/Grandillionaire/urfael.git && cd urfael
./install.sh        # checks deps, scaffolds your vault, no keys
cd app && npm start # the Console opens

You need: a Claude Code subscription (Pro or Max) signed in, or any provider, or a local model. macOS on Apple Silicon or Intel is the best-tested target; Linux is supported but newer. Full setup is in the install guide.

Or run it 100% on your own GPU. A local model (Ollama / NVIDIA NIM) plus local voice means nothing leaves the machine. Guide.

★ Star it on GitHub

Editions, honest about what each one is

The full single-user agent is free and MIT, forever. Paid editions add what teams and regulated work need: governance, a signed attestation an auditor accepts, and managed operation. None of them ever meter your tokens.

Sovereign
free · MIT · available now
  • The whole agent: 19 channels, local voice, the Council, urfael code, the runnable benchmark
  • Your machine, your subscription, no inbound port
  • The tamper-evident ledger and ed25519 seal
Install free
Pro / Teams
coming
  • Multi-principal team mode and SSO
  • Signed audit-export to your SIEM
  • A scheduled, signed compliance attestation
  • A notarized one-click installer and priority support
Get notified
Managed-Sovereign
coming
  • We operate Urfael inside your own infrastructure
  • We never hold your data or your keys
  • A monthly signed attestation that it stayed home
  • Onboarding and an SLA
Talk to us

Paid editions never meter tokens. You always bring your own subscription, provider, or local model.

Coming later: a fully managed Cloud edition with simple monthly plans, for people who want the convenience without running anything themselves. Tell us if you want it sooner.

Get the launch, the benchmark results, and release notes.

★ Star on GitHub Releases

Questions, answered honestly

What does it cost to run?
By default, your existing Claude subscription, flat-rate. There is no Urfael account and no server you rent from us. You can also point it at any of 30 providers (you pay their per-token rate) or at a local model on your own GPU, where it costs you only electricity. We do not see your traffic; there is nothing to see. On the subscription path, see the next answer about Anthropic's terms.
Is it actually secure, or is that just a word?
It is a command: npm run security. It boots the real daemon and dashboard and attacks them the way self-hosted agents were attacked in 2026, then prints a pass-or-fail table. The latest run resists 10 of 10 real-world attack classes across 95 of 95 checks. You do not take our word for it. You run it.
Does Urfael depend on Anthropic, and what if their terms change?
Urfael is not built, endorsed, or operated by Anthropic, and running it on a flat-rate Claude subscription depends on Anthropic's consumer terms, which we do not control. We say so plainly. It is not a single point of failure: the same Urfael, with the same security guarantees, also runs on any of 30 providers through a documented proxy, or on a local model on your own GPU, with one config line. So if those terms ever change, your cost model changes, not the product.

Read all 15 questions ›