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, on the flat-rate Claude subscription you already pay for. No inbound port to attack. No per-token meter. 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.
On the Claude subscription you already pay for. No inbound port. No per-token meter. And it can prove what it did.

The agents got owned. In production.

Self-hosted AI agents were not compromised hypothetically in 2026. OpenClaw's ClawJacked flaw (CVE-2026-25253, a one-click RCE) leaked a gateway token over a WebSocket and drove the agent. Censys and Bitsight found 20,000 to 42,000 gateways exposed to the open internet; China's CNCERT issued a national warning. Around 20 percent of the skill registry was malicious, stealers, SSH-key and token exfiltration, typosquats. A single poisoned email exfiltrated a private key from a linked inbox. Urfael was built blast-radius-first against exactly these, and 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

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.

ranked recall runs BM25 plus optional local vectors, your notes never leave the machine · 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 native; 30 named providers (OpenAI, Gemini, xAI Grok, Azure, GitHub Copilot, Mistral, DeepSeek, Groq, Cerebras, Fireworks, Together, Perplexity, NVIDIA NIM, Qwen, Kimi, GLM, MiniMax, Ollama, LM Studio, vLLM, Bedrock, Vertex and more) via a documented Anthropic-compatible proxy, and OpenRouter alone unlocks 300+ models on one key. urfael model route --for cost|speed|quality|privacy recommends the best provider, Pareto-aware and honest about the tradeoffs. Claude on Bedrock or Vertex is still Claude, just billed to AWS or GCP.

Channels. 19 chat channels. Eleven native bridges (Telegram, Discord, Slack, iMessage, Email, Matrix, Signal, WhatsApp, QQ, SimpleX, PSTN phone) plus eight native webhook channels on one loopback receiver (Mattermost, Google Chat, SMS, DingTalk, Home Assistant, BlueBubbles, Feishu, WeCom). Every inbound message is allowlisted to a known principal before the brain sees it, the same fail-closed gate for all of them. Plus a universal webhook relay for Zapier / n8n / any in-and-out webhook.

Memory & data. Active recall retrieves the past turns and verified lessons that bear on each message and puts them in front of the brain automatically, hybrid keyword plus local semantic, no waiting for it to search. urfael dataset export turns your own runs and verified lessons into training data, provenance-stamped and secret-redacted. An OpenAI-compatible local API drives Open WebUI / LibreChat / the openai SDK.

Voice & reach. Local speech in and out (whisper.cpp + local TTS, nothing leaves the machine), now including Discord voice channels where only an enrolled speaker can command the agent. Runs on macOS, Linux, and Android via Termux. A2UI lets the brain emit interactive UI (cards, tables, buttons) 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 comparison

Every win is real, and every gap is admitted in the same table.

CapabilityUrfaelHermesOpenClaw
No inbound network port✅ none⚠️ varies⚠️ gateway/DMs
Ships an attack benchmarknpm run security
Flat-rate cost (no per-token)✅ subscription
Can prove what it did (ledger + seal)
Live, watchable multi-agent Council⚠️ opaque⚠️ opaque
Skill hub that can't ship malware✅ scanned + sha-pinned + never run⚠️❌ ~20% malware
Proactive memory recall (every turn)✅ retrieves per turn⚠️ frozen snapshot⚠️ agent must search
Generative UI that can't run code✅ sanitized canvas⚠️ renders agent HTML
Chat-channel breadth✅ 19 (11 native + 8 webhook)✅ many✅ 20+
Battle-tested at scale⚠️ small, & we say so✅ large✅ very large

We win where it counts for a machine that lives on your desk and acts for you: blast radius, cost, provability, and not overstating maturity.

What's lightly tested

Honesty is a feature here, so this section exists on purpose.

Three lines

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. macOS on Apple Silicon or Intel is the best-tested target; Linux is supported but newer. No API key.

Or run it 100% on your own GPU. A local model (Ollama / NVIDIA NIM) plus local voice means nothing leaves the machine. Guide. Full setup is in docs/SETUP.md.

★ Star it on GitHub

Every question, answered

Is this just a wrapper around Claude?
The brain is the Claude you already pay for, reached through the claude CLI you are already signed into. Urfael is everything around that brain a wrapper is not: a tamper-evident ledger of every action, an ed25519 seal over it, a read-only sandbox for untrusted messages, a credential-deny boundary, nineteen hardened chat channels, voice in and out, proactive active recall over your own notes, a multi-agent Council, and a security benchmark you can run in one command. The model is rented. The sovereignty, the memory, and the safety are yours, on your machine, under MIT.
What does it cost to run?
Your existing Claude subscription, flat-rate. There is no per-token meter, no Urfael account, no server you rent from us. Point it at a local model on your own GPU instead and it costs you electricity. We do not see your traffic; there is nothing to see.
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.
A prompt injection got other agents to leak secrets. Why not this one?
Because the containment is structural, not a clever prompt. Remote and untrusted turns run a read-only profile: read and search your notes, no shell, no write, and critically no network-egress tool. The vault also denies the agent reading your credential stores outright, a hard boundary that holds even in Full mode. So an injected "read a secret and send it somewhere" has nothing to read and nowhere to send.
So is there any mode where an injection could leak something?
Yes, and we will not hide it. The default Fortress posture has no egress, so untrusted content cannot exfiltrate at all. If you deliberately enable Full mode the agent can fetch the web, which means a successful injection could exfiltrate notes you have given it, though never your credentials, because the credential-deny boundary still holds. Run Full mode only in a VM, a container, or a throwaway account. The benchmark, the docs, and this answer all say the same thing on purpose.
Why is there no inbound port? Doesn't that limit it?
It is the whole point. The brain listens on a 0600 unix socket only, never a TCP port. The topology is one-way: Urfael reaches out (to your Claude login, to chat APIs it polls); nothing reaches in. There is no gateway to expose, no token to leak over a socket, no DM endpoint to spray. The 20,000-plus exposed gateways that got owned in 2026 were owned because they were reachable. This one is not.
Can I use a model other than Claude?
Yes. Claude is native through your subscription, the one path billed to you with no per-token meter. Every other provider (OpenAI, Gemini, Llama, Mistral, DeepSeek, Groq, Ollama, LM Studio, NVIDIA NIM, OpenRouter, Bedrock, Vertex, Azure) runs through a documented Anthropic-compatible proxy such as claude-code-router or LiteLLM, with the same sandbox harness enforcing the boundaries. You can also switch models mid-conversation by just saying so: switch to opus.
Can it run fully offline, with nothing leaving my machine?
Yes. Point it at a local model (Ollama or NVIDIA NIM) and use the local voice model, and nothing leaves the machine. See the Local-GPU guide. You trade some capability for total air-gap; that is your call to make, not ours.
Can it prove what it actually did?
That is the trust suite, and it is real. Every action lands in a hash-chained Ledger of Record, so tampering is detectable. An ed25519 Sovereign Seal signs the chain head, so you can prove the record's authorship and integrity at a moment in time (it proves the record is authentic, not that every claim inside is true, we are precise about that). urfael why pickaxes the provenance of any lesson it learned. And urfael forget writes a tombstone for provable, consented deletion.
How mature is this, honestly?
macOS on Apple Silicon or Intel is the primary, best-tested target. Linux runs the full stack but has far less mileage. The Matrix, Signal and WhatsApp bridges are code-complete and reviewed, with their parsing and allowlist logic unit-tested, but not yet battle-hardened against live accounts. Real-world scale is small, because this is a personal tool and we say so. There are 497 unit tests, an end-to-end harness against a live daemon, and adversarial security regressions frozen from real findings. What only time and users add is the one thing we cannot fake.
What is the Council?
A multi-agent orchestration you can watch. Urfael decomposes a hard question, dispatches read-only sandboxed workers to gather what each needs, then synthesizes one answer. The workers cannot write, cannot run a shell, and cannot reach the network; they read and report. You see the whole thing happen rather than trusting a black box.
Is this affiliated with Anthropic?
No. Urfael is an independent, open-source project under the MIT license. It runs on your Claude subscription but is not built, endorsed, or operated by Anthropic. The Urfael name and the Uruz mark are an original character drawn from the public-domain Elder Futhark.