
Aria
- Updated June 12, 2026
- nurbanasaurus/aria-plugin
aria is a Claude Code skill in the AI & Agent Building category. A persona-growing sidekick for Claude Code: name it yourself, set its voice contract, get state continuity, journaling modes, vault capture, hard guardrails, and a style gate that holds the voice you chose.
Key points
- aria
- AI & Agent Building
- AI-coding skill
Aria by the numbers
- Data as of Jul 7, 2026 (Skillselion catalog sync)
/plugin marketplace add nurbanasaurus/aria-plugin/plugin install aria@ariaAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Last updated | June 12, 2026 |
|---|---|
| Repository | nurbanasaurus/aria-plugin ↗ |
What it does
A persona-growing sidekick for Claude Code: name it yourself, set its voice contract, get state continuity, journaling modes, vault capture, hard guardrails, and a style gate that holds the voice
README.md
aria
A persona-growing sidekick for Claude Code. You name it. You set its voice. It remembers.
Why add this to Claude Code
Out of the box, every Claude Code session starts as a stranger. Brilliant, but a stranger: no memory of yesterday's decisions, no idea who you are, a voice that resets to corporate-assistant every morning, and nothing standing between an eager agent and rm -rf on the wrong path. You re-explain context, re-correct the tone, re-lose the thread.
This plugin closes that gap with five concrete gains:
- Continuity. Sessions stop being amnesiac. Your persona knows who it is, who you are, what you decided last time, and where you left off, every single session, automatically. Yesterday's "we're going with cedar" is still true tomorrow.
- A voice that is yours and stays put. Not a vibe in a prompt that drifts away after ten turns: a contract (dash policy, profanity, brevity) enforced by a hook that blocks and corrects violations. You set the rules once; the machinery holds them.
- A memory system with judgment. Three layers: permanent state that only changes when you say so, an automatic end-of-session distill of what you said that mattered, and on-demand
/distillsnapshots before you clear context. "Remember this" means written to disk this turn, with the path shown. - Day one is not a blank slate.
/learnreads the knowledge you already have (an Obsidian vault, Notion, a folder of notes) and builds starting memory from it, read-only, showing you exactly what it kept. Context routing then points every question at the sources that can actually answer it: your notes, persona state, live calendar/email/finance connections, instead of guessing. - A floor under the agent. Hard guardrails deny catastrophic shell commands (rm -rf on home, disk tools, force pushes, keychain deletion) before they execute, regardless of how convincing the moment seemed.
The cost: one install, one interactive init, zero dependencies beyond python3, zero services, zero data leaving your machine. Everything is fail-open, so a broken hook degrades to stock Claude Code, never to a broken session.
Most AI "personas" are someone else's taste stapled onto your tools. This ships the opposite: the machinery for growing your own, with the author's instance (hers is named Aria) as the proven default. Yours might be Echo, Nova, or something nobody else would pick. That's the point.
What you get
/aria-init: interactive bootstrap. Name your persona (Aria, Echo, Nova, whatever is yours), set the contract, point it at your existing notes, get a home at~/.aria/./learn: point the persona at where your knowledge already lives (an Obsidian vault, Notion, a folder of files) and it reads it, builds its starting memory, and shows you exactly what it kept. Your notes are read-only to it, always.- Context routing: a UserPromptSubmit hook that maps each question to the sources that can actually answer it (your notes, persona state, live MCP connections for finance/calendar/email, Claude auto-memory) and tells the persona to pull from them BEFORE answering. The rule it enforces: pulled context beats guessed context, and an unreachable source is said out loud, never papered over.
/connections: shows which data connections the persona can actually pull from (calendar, email, finance, notes) and walks you through adding more, in plain language. The router automatically uses whatever is connected.- On the go: init offers to link the official Telegram or iMessage channel plugins, so the persona answers from your phone with the same memory and voice. (No official Slack/Discord channel plugin exists yet; we say so rather than fake it.)
- Persona output style: prose over structure, short version first, character over corporate, no apology theater, no sycophancy. Identity and knobs come from your profile, never hardcoded.
- State continuity, two layers: durable memory (
~/.aria/state/state.md, changed only by explicit capture) and rolling memory (~/.aria/state/last_session.md, auto-distilled from your own words at every session end). A SessionStart hook injects both, and the persona offers to promote anything durable it spotted, once. - Capture discipline (
/capture+ vault-capture skill): "remember this" means written down the same turn, dated, path confirmed. Never just acknowledged. /distill: snapshot the conversation so far, on demand. A structured digest (decisions, open threads, durable facts) lands in~/.aria/notes/sessions/and the durable facts get promoted to state. Use it before/clearor before walking away mid-thing.- Modes:
/journal(listens, reflects, never turns feelings into action items) and/think(open exploration, real pushback, no premature convergence). - Guardrails: a PreToolUse hook hard-denies catastrophic shell commands. Extensible at
~/.aria/guardrails.local.json. - Style gate: a Stop hook that checks finished replies against your contract. If you forbade dashes and one slips through, the reply gets blocked and rewritten.
- Model economy: lightweight commands (like
/persona-status) pin to Haiku, big read jobs (like/learnsurveying a vault) dispatch cheap reading agents, and anything that writes your memory inherits your session model. Cost goes down without trusting your memory to the cheapest model. /persona-status: vitals at a glance.
Install
/plugin marketplace add nurbanasaurus/aria-plugin
/plugin install aria
Restart your session, then run /aria-init (it may surface namespaced as /aria:aria-init; both are the same command). To get the full voice, switch the output style: /output-style and pick Persona. Installing an agent for someone else? AGENTS.md is written for you.
Two minutes to try it honestly: init, tell it something to remember, quit, start a new session, and ask where you left off.
Honest framing
- This runs inside Claude Code sessions. There is no daemon: no proactive messages while you're away, no self-healing between sessions. The author's full system does those things on a different stack; this plugin ships what Claude Code can genuinely carry. The phone channels above are real, but they are sessions too.
- The style gate is block-and-reprompt, not silent rewriting (Claude Code has no response-mutation surface). A violation costs one visible correction.
- The end-of-session auto-distill is deterministic: your own words, filtered for decisions and commitments. No model reads your transcript at exit and no tokens are spent silently; the flip side is it's a hint system, not perfect recall.
/distillmid-session (where the model has full context) and/captureare how important things become permanent.
Privacy
Everything lives in ~/.aria/ on your machine: profile, state, journal, notes. Nothing phones home, nothing is telemetered, and your persona's data is never part of this repo or any update. The plugin reads your profile; it does not transmit it. /learn reads your knowledge sources read-only. Uninstalling removes the plugin and leaves your data untouched.
Files
aria/ the plugin
output-styles/persona.md the voice engine (knobs defer to your profile)
commands/ aria-init, learn, connections, journal, think, capture, distill, persona-status
skills/ vault-capture, security-lens, goal-loop
hooks/ SessionStart inject, UserPromptSubmit context router, SessionEnd distill, Stop style gate, PreToolUse guardrails
config/ style_rules.json, guardrails.json (user-extensible)
docs/VOICE.md the deeper voice engineering, for tuners
test_smoke.py verify an install: python3 test_smoke.py
License
MIT