Verse: a cluster of smoky quartz crystals with violet cores and a web of cyan light, floating over a dark floor

A sample exchange with Verse:

  1. You Can you get the scribe to write down the plan for Friday?
  2. Verse I'll get the scribe on it.
  3. You What are the agents doing?
  4. Verse The scribe's writing up Friday's plan. Nothing needs you.
  5. Verse The scribe's done writing that down.

A crystal on your desktop that runs AI agents for you

Verse Agent is a desktop app. You talk to Verse with your voice or by typing. It hands real work to small agents with strict limits, tells you what they're doing, and asks for your go-ahead before anything that matters. Everything runs on your own computer unless you add an online model.

Download Verse AgentWatch the filmSee how it works

The film

About 7 minutes, narrated, for anyone: what Verse is, what an agent is, and how the platform keeps agents in check. With captions and chapters.

Read the narration every word of the film

1Meet Verse

This is Verse. It lives on your desktop as a glowing crystal. You talk to it with your voice, or by typing, and it answers in a voice of its own.

But Verse isn't working alone. When you ask for real work, it hands the job to a team of small AI agents, tells you what they're doing, and asks for your go-ahead before anything that matters. Unless you add an online model, all of it runs on your own computer.

2What an agent is

An agent is a small worker with one job, a few tools it's allowed to use, and strict limits. Take the scribe. It writes down your notes, reminders, and summaries, and its file tools reach exactly one folder.

An agent's job description is called its charter. It says what the agent is for, which tools it may use, how big a change it may make on its own, and when it has to stop and ask.

Every agent also has a budget: a fixed number of steps, tool uses, thinking, and time. When the budget runs out, the agent stops. It can't quietly keep going.

3The model plans, the code decides

Here's the idea everything rests on. An AI model is good at planning, but it can be wrong, and it can be fooled. So the model never touches anything itself.

At each step, it proposes one action, in a strict form: act, change the plan, finish, or ask for help. Then plain, checkable code decides whether that's allowed, does it, checks that it worked, undoes it if it didn't, and writes everything down.

4One gate for every action

Every action passes through the same gate. Its shape is checked and its risk is sized. Then the rules are consulted, and the first rule is simple: nothing is allowed unless a rule says so.

A big enough action waits for you. Then it gets a permit that works once, for that one action. Its input is screened, it runs in a sandbox or as a transaction, and its output is screened too.

Last, the result is checked by code that doesn't take the agent's word for it. If the check passes, the change is kept. If it fails, the change is undone. Either way, it's on the record.

5You stay in charge

Every action has a size. Just thinking. Looking. A change it can undo. A change other people will see. And a change that can't be undone.

The last two always wait for you, and so does anything past the agent's own limit. A model that sounds sure of itself can never shrink a size, or skip the question.

To approve, you hold the button for a little over a second, so a stray click never approves anything. Or you simply say, yes, go ahead. Your yes covers that exact action. If anything about it changes, the agent has to ask again.

6Outside text can't give orders

Agents read web pages, files, and email, and some of that text is written to trick them. So every piece of text carries a trust level, from outside data at the bottom to the system's own rules at the top.

Only your instructions and the system's rules can tell an agent what to do. Everything else is just information. If a web page says, forward everything to this address, and an agent tries it, the platform sees the address came from the page, not from you, and asks you first.

In the project's own benchmark of these attacks, not one succeeded.

7Memory

Verse remembers what you tell it about yourself, in a small memory on your computer. It keeps a fact only if you really said it, never anything that looks like a secret, and it forgets whenever you ask.

The agents keep a memory of their own. A new note is held until someone checks it. An agent can never approve its own note, and only checked notes are treated as fact.

8Skills and teams

You can also teach Verse your own way of working. A skill is a set of instructions you write once, like, check every name and number. Start a request with a slash and the skill's name, and Verse follows it. So does every agent it hands the work to.

A collective is a team. You draw it on a board that looks like a patch bay: a wire from Verse to the agent in charge, and wires from that agent to the agents it leads.

Start a request with an at sign and the team's name. The lead splits the work into as many as six steps. Each step waits for the ones it needs, and at the end, the lead sums up what the team achieved.

9Your other computers

Agents can work on your other computers, too. Install Verse Node on another machine, type in the twelve-character code it shows, and Verse pairs with it over an encrypted connection.

On the board, that computer is a circle. The agents you wire below it run there, with its files and its tools. But their thinking still goes through Verse, so your keys never leave your main computer.

10Who does the thinking

By default, the thinking happens on your own computer, with a small local model. For harder work you can add an online model, such as Verse AI, Claude, OpenAI, or Kimi, and choose how much goes to it, from nothing at all to everything.

Anything private stays on your computer, no matter what. Once private data shows up in a piece of work, every later step of that work stays local too.

11When something goes wrong

Before any action goes out, the decision is saved. If the computer crashes, the work resumes where it left off. A recorded result is reused, and an action that provably never went out is sent again.

But when nobody can tell whether something happened, like a payment or a message, it's never retried. It stops, and waits for a person. And when you ask Verse what went wrong, it answers from the record, with the step that failed and the exact error.

12Where it stands

The platform is written in C#, with faithful copies in Python and TypeScript, and it runs on Windows, macOS, and Linux.

Across the three languages, it has more than eighteen hundred tests, including forty-six fault-injection checks that every language must pass in exactly the same way.

Verse Agent and Verse Node have installers for Windows and Linux. There's no Mac installer yet, and nothing updates by itself.

In short

The model plans. The code decides. You stay in charge. This is Verse.

Meet Verse

Two halves: a companion you talk to, and a platform that keeps its agents on a short leash.

Verse Agent, the app

You talk to Verse, a glowing crystal on your screen, with your voice or by typing. Verse talks back in its own voice, remembers what you tell it about yourself, hands real work to the agents, tells you what they're doing, and asks for your go-ahead before they do anything that matters.

The agent platform, underneath

Software for running teams of AI agents safely. An agent is a small worker with one job, a set of tools and strict limits. The platform is written in C#, with faithful copies in Python and Node.js, so you can build on it in any of the three.

The model plans. Plain, checkable code decides whether that's allowed, does it, checks it worked, undoes it if it didn't, and writes everything down.

At a glance

Verse speaks
Kitten TTS v0.8 mini, on your device
Verse listens
Moonshine v2 streaming, on your device
Verse remembers
A small vector memory, on your device
Agents in the app
The scribe, for notes, reminders and summaries, and the built-in demo agent. You make more with New agent on a collective's board, or in platform/agents.json.
Skills and teams
Your own skills, instructions you write once and use with /name, and collectives, teams you draw on a board and ask with @name
Other computers
Verse Node runs agents on your other computers, paired once with a 12-character code. Your keys stay on the main one.
Models
On your computer by default (gemma3:1b on Ollama). Online: Verse AI, Claude, OpenAI or Kimi. A small backup model runs inside the app when nothing else answers.
Safety
Nothing is allowed by default. Bigger changes wait for you, every change is checked, and a change that fails is undone.
Connections
23 outside services through MCP servers, all off until you switch them on
Runs on
Windows, macOS and Linux
Versions
Platform 1.1.1 in all three languages. Verse Agent app 0.1.0.
Tests
C# 791, Python 533, Node 532, Verse Agent 191, with 46 fault-injection checks shared by all three languages

Where it stands. Working end to end. Verse Agent and Verse Node have installers for Windows and Linux, not macOS; they aren't code-signed yet, and nothing updates by itself. Some screens show real data but can't change it yet: the Charter window's form (make agents on a collective's board instead), editing rules, switching one tool off, and trusting or retiring learned skills. They say so on screen.

Talking to Verse

What you can do with it, in the words you'll see on screen and say out loud.

Talk to it

Space hold
Hold it and speak, then let go. The microphone is open only while you hold the key. The Talk button does the same with the mouse.
H
Hands-free listening. Start with “Hey Verse” and say what you want. For 25 seconds after an exchange you can keep talking without the wake word. Verse mutes its hearing while it speaks, so it never answers itself.
Enter
Type in the box at the bottom, “Ask Verse, or tell an agent what to do”, and send it.
Space again
Pressed while Verse is talking, it stops Verse at once. You always have the floor.

Verse answers in one to three short sentences, or up to six when you ask it to explain something. The line it's saying, or the one you just said, is typed out under the crystal. Verse listens and speaks in English.

Things Verse does without asking a model

These work even when the model is slow or offline. Verse listens in English, so say them in English.

SayWhat happens
“What are the agents doing?”A spoken summary of what's running
“Can you get the scribe to write that down?”The request becomes a real task for that agent
“Yes, go ahead.” or “Deny it.”Decides the approval Verse just asked about, or the first one waiting
“Cancel that.”Cancels the newest running task
“Only tell me the important stuff.”Quiet narration. “Tell me everything.” is chatty, and “Normal updates.” goes back to normal.
“Stop.” or “That's enough.”Verse stops talking
“Say that again.”Repeats the last line
“What do you know about me?”Reads back up to five things it remembers
“Remember that I work late on Thursdays.”Saves that fact, if it passes the memory checks
“Forget that.”Removes the last fact. “Forget what I said about Thursdays.” removes the matching facts. “Forget everything about me.” clears everything once you confirm with “yes” within 30 seconds.

Anything else is a conversation. When what you ask is real work, Verse hands it to the agent that fits and says who's on it.

Give an agent work

  1. Ask Verse in plain words: “Can you get the scribe to write down the plan for Friday?”
  2. Start the request with the agent's name after an at sign: @scribe write down the plan for Friday. As you type @ or / at the start of the box, Verse suggests the names it knows.
  3. Or type the task, click +, choose Agent, pick the agent and press Enter. The message goes straight to that agent as a task instead of to Verse.

Good tasks say what done looks like. “Write a three-line summary of today's notes into summary.md” finishes faster and better than “sort out my notes”.

Write skills and build teams

A skill is a set of instructions you write once and use whenever you like. Open Skills (key 8), stay on Yours, choose New skill, and give it a name, what it's for and the instructions, such as “Check every name and number against the source before you use it.” Then start a request with its name after a slash: /careful check the guest list for the party. Verse follows it for that request, and if it hands the work to an agent or a team, the skill goes along.

A collective is a team of agents, and even of smaller teams, that takes on a request together. Open Agents (key A), choose Collectives and New collective, give it a name and say what it's for, then press Open the board:

  1. Drag your agents onto the board from the left.
  2. Drag a wire from Verse at the top to the agent that takes your requests.
  3. Drag wires from that agent to the agents it's in charge of. An arrow shows who answers to whom.
  4. Press Save collective. The strip along the bottom says what's still missing, if anything.

Then ask it: @research-team compare three laptops under a thousand dollars. The agent in charge plans the work in up to six steps among its team, each step waits for the ones it needs, and when everything's done Verse tells you what the team achieved. Skills and teams combine: /careful @research-team compare three laptops. The run shows in Tasks like any other work, and cancelling it there stops everything it handed out.

Need a new kind of agent? New agent on the board makes one on the spot: a role, what it's for, the tools it may use, and Quick or Thorough limits. It's ready at once and lands on the board.

Put agents on your other computers

A node is another computer in your home or office running Verse Node. Agents you put on it work there, with that computer's files and tools.

  1. On the board, choose Add node. Under Get Verse Node onto that computer, press Save beside the Windows or Linux installer, carry it to the other computer and install it there. Verse Node opens and shows a pairing code, such as 7KQ4-M2XD-9PRW.
  2. Back in Add node, pick that computer from the ones Verse finds on your network, or type its address, type the code, choose what to Call it, and press Pair.
  3. The node lands on the board as a circle. Wire it under Verse or an agent, then wire below it the agents that should run on that computer. Click the circle to write What this node does and to choose whether it Opens as a window or a terminal there.
  4. Save the board. Verse sets the node up by itself, and any request to that collective can now give the node its part.

On the other computer, a window or a terminal shows every step its agents take. Ask Verse “What's on my office computer?”. Your keys never leave your main computer: the node's agents think with Verse's models, through Verse. Nodes work while the Verse Agent window is open on the main computer.

Follow the work

Each agent appears as a small crystal orbiting Verse, up to twelve of them. It glows while it works, flares when it acts, breathes gold while it waits for you, and rings when it finishes or fails. A bolt of light runs between two crystals when one hands work to another.

Verse tells you about the work as it happens: when a task starts, needs you, finishes or gets stuck. Urgent news, like an approval, a stuck agent or your task failing, may cut into what it's saying (“Oh, hang on, an agent's calling me.”), and then it picks up where it left off. The Tasks window shows each task's progress, plan, helpers and what counts as done. History replays any task step by step with every safety check, without running anything again.

Say yes or no

When a step would change something that matters, the agent stops and asks. Verse says so out loud, the state under the wordmark turns to Needs you, and the Agents button turns amber with a count. The Needs your go-ahead window (key 3) shows what it'll do, how big a change it is, and whether it can be undone.

Try it. Say you've given the scribe your Slack connection:

Scribe needs your go-ahead

Post Friday's plan to the team channel in Slack.

How big a change
Can't be undone
Can I undo it?
No. Once it's done, it's done.
For the task
Write down the plan for Friday and share it with the team
Exactly what you're approving

I locked in this exact action. If anything about it changes before it runs, I'll ask you again.

Look after memory

What Verse knows about you
Settings › Memory lists every fact, with Forget that and Forget everything. Verse only stores what you said yourself, never guesses, and refuses anything that looks like a password, key or card number.
What agents know
The Memory window (key 9). Notes an agent saved wait On hold until you approve them with a hold, or reject them. An agent can never approve its own note.

Connect outside services

Tools and connections (key 7) lists 23 services. Each is off until you switch it on. If one needs a key, Verse says which and keeps it off until the key is saved, encrypted. Then you choose which agents may use it. Reading is allowed straight away; anything that changes something for you, like sending a message or updating a ticket, is prepared first and waits for your go-ahead.

Work, acting for you
Microsoft 365, Google Workspace, Slack, Jira, Confluence, Notion, Airtable, Todoist, Linear, HubSpot, Sentry, Zapier
Knowledge
Microsoft Learn, library docs (Context7), arXiv
This computer and its devices
A web browser (Playwright), a document reader (MarkItDown), code search (Serena), GitHub, databases (DBHub), the Windows desktop, phones and tablets (mobile-mcp), Home Assistant

Choose who does the thinking

The Models window (key 0) shows the model on this computer, an optional online model, and how the work is split. To add an online model, pick Verse AI, Claude, OpenAI or Kimi and enter the key. For Verse AI you also enter the secret and the server address. Check and save refuses a key the provider turns down. Then pick a model, choose how much goes online, and press Use this model.

When needed
Each call goes where it fits
Half
About half the calls go online
Everything
Every call goes online

Private things always stay on this device, whatever you choose. If no model answers at all, Verse switches to a small backup model that runs inside the app on your graphics card, tells you so, and answers “What's wrong?” with the cause and the fix.

A Verse AI key and secret come from Settings › API Credentials on this site. The Developer Portal explains them, and the hosted service bills in VXT.

Use it from a terminal

The verse-agent command does what the window does, in any terminal on Windows, macOS or Linux, over SSH too: quick commands, a full-screen view with panes you split like tmux, and a line-by-line chat.

# what's running, then a task for the scribe
verse-agent status
verse-agent task scribe "Write a three-line summary of today's notes into summary.md"
verse-agent approvals
verse-agent approve 1

When something's wrong

System health, in the launcher, checks every part of Verse every 5 seconds. The handbook's Problems chapter explains each symptom and its fix:

How it looks

An old green-screen terminal floating over a living crystal in deep space.

The crystal is Verse. The text, buttons and windows glow like the phosphor of a CRT tube, with faint scanlines. Everything on screen uses everyday words, like “Changes it can undo” and “Needs your go-ahead”, rather than engineering terms. Nothing is made up: where the platform has no data, or a control isn't connected yet, the screen says so.

Rules the app follows

Plain names first
Tools, sizes of change and events are shown in plain words: write-file is “Write files”, significantSharedWrite is “Changes others see”. Settings › Display › Technical names adds the platform's own names beside them.
Real data only
Every window reads live data. Empty states explain themselves: “Nothing's running. Ask Verse for something and it shows up here.”
Honest about gaps
Controls the platform can't act on yet are shown disabled, with a note that says so.
Business first
Anything that needs you, an approval or a stuck agent, shows in amber: in the top bar, in speech, and in the side rail when side panels are on.
Copy for the ear and the eye
Short, active sentences with contractions.

The phosphor tube

Every colour in the interface is mixed from two values: lit phosphor and unlit glass. Change the tube in Settings › Display and everything recolours at once. This page works the same way:

Tube colour for this page

Two signal colours sit outside the tube and never change: amber for anything waiting on you, and red for failures, Deny and Never. The 3D scene keeps its own palette: cyan, violet and champagne on a deep void.

The crystal

Verse is a single mesh of 870,000 triangles with baked colour, roughness and normal maps. Its shader sorts every texel by hue into three materials:

Smoky champagne quartz
See-through glass: physical transmission, quartz's index of refraction (1.544), champagne absorption, dispersion, clearcoat and thin-film iridescence. It's double-sided, so the back facets show through.
Amethyst cores
Opaque, with a breathing violet glow, lit from inside by a pulsing light.
Cyan veins
Flowing energy, plus a 3D web grown from the painted veins, with pulses travelling along it and star flares where it joins.

Its mood follows what Verse is doing, blended smoothly:

StateEnergyFlowSparkleFeel
Idle1.01.01.0A resting glow
Thinking1.452.61.35Faster, brighter flow
Speaking1.31.71.15The energy follows the voice
Listening1.150.551.7The flow slows and the facets glitter, as if holding its breath

Quality Low draws at device pixel ratio 1, without multisampling, with half-resolution transmission and 1024-pixel shadows. High goes up to 1.75, with 4× multisampling and 2048-pixel shadows.

The agent constellation

Each agent gets a small crystal on an orbit around Verse, tethered to its heart, up to twelve. More agents glow inside the main crystal and take over a crystal when one retires.

Spawn
Born at the heart, it arcs out to its orbit with a bolt along the tether.
Activity
Its core brightens, its spin quickens, and pulses flow inward along the tether.
Thought
A soft violet shimmer, also used when a step is sent back.
Flare
A cyan flash and a small kick.
Transfer
A bolt of light between two crystals, when one hands work to another.
Attention
A slow gold breath while the agent waits on you.
Complete
A bright bloom and an expanding ring.
Fail
An ember flicker, a shiver and a ring, also used when a run crashes and will retry.
Retire
It spirals back into the heart.

A flood of events stays readable. Continuous work is a level that eases up and decays, so a thousand events a second keep a crystal lit instead of replaying a thousand animations. Flourishes are throttled per agent and capped across all of them, lifecycle cues are never dropped but spaced 180 ms apart, and with the operating system's reduce-motion setting only lifecycle cues play.

The oscilloscope

Settings › Display › Show Verse as › Oscilloscope replaces the crystal with a two-trace analog oscilloscope. Channel 1 is Verse's voice; channel 2 is your microphone while it's open. Each frame fades the last like phosphor afterglow, and a slow, low wave on channel 1 means Verse is thinking. With the oscilloscope, the 3D scene and its 36 MB model are never loaded, and at rest it redraws about ten times a second.

Channel 1: VerseChannel 2: you, microphone off

The patch bay

A collective's board is drawn as a patch bay on the tube: a dot grid that pans and zooms with the view, flat square phosphor modules, and glowing patch cables, the only curved lines on the board. Every colour comes from the tube, so the Tube setting recolours the board too.

Verse
A filled panel fixed at the top, with the VERSE wordmark and one output jack below it
Agent
A square panel with its name, its job and its skills as /name, an input jack on top and an output jack below
Collective
The same panel with a double border and a “team” badge, and no output jack, because it runs its own team
Node
A dashed circle with a lamp: lit when Verse is connected to it, amber while it connects, dim when it's offline
Cable
A curve from a manager's bottom jack to a report's top jack, ending in an arrowhead. It turns amber when it leads to a module with a problem.

Saving sends a short signal pulse down every cable. With reduced motion there's no pulse, and the board opens without its animation.

Type, shape, motion and sound

Type
Roboto Condensed for labels and buttons, VT323, a pixel terminal face, for readouts, the caption and the composer, and Roboto Serif for reading in the handbook. All bundled, nothing fetched while it runs.
Shape
Every corner is square. The only rounded corner is the CRT glass. Frames and rules are 2 px lines, and filled readout cells are separated by 3 px seams, as on this page.
Texture
Scanlines over everything, a soft phosphor glow on text, and see-through windows. Scanlines and glow can each be switched off.
Motion
Stepped and quick, like old hardware. Status dots blink in steps, windows open in 260 ms, and the spoken caption types out at 45 characters a second behind a block cursor.
Sound
The only sound is Verse's voice. There are no clicks or chimes.

Layout

By default the screen is bare, so the crystal has room, and news arrives as toasts in the corner. With side panels on, a left rail lists the agents and a right rail shows what needs you and the latest activity.

VERSEIdleModel gemma3:1bMic: Push to talkWindows WAgents 1/2 ASettings ,Handbook F1
Agents, when side panels are on
The crystal, or the oscilloscope
Needs you and Activity, when side panels are on. Otherwise, toasts.
VerseThe scribe's done writing that down.
+> Ask Verse, or tell an agent what to doTalkSend
Space hold to talkH hands-freeEnter send+ attach

The launcher (W) groups every window: Work (Agents, Tasks, Needs your go-ahead, Second opinions, History), What agents can do (Rules, Tools and connections, Skills, Memory), System (Models, System health, Settings) and Help (the handbook). Every window is a floating panel you can drag; the focused one has a bright border.

Every window

WindowKeyShowsYou can
AgentsA 1The roster, each agent's status and budget, every agent's recent steps, a graph of hand-offs, and your collectivesFilter, approve or deny, cancel a run, open its task or charter, build a collective on its board
Charterfrom AgentsAn agent's real charter, or a blank five-step form that reads it back in plain wordsSave a draft (the form isn't connected yet: make agents with New agent on a collective's board)
Tasks2Running and earlier tasks: the loop phase, the plan, helpers, what counts as done, the budgetCancel a task, replay it, jump to approvals
Needs your go-ahead3Waiting approvals with their size, whether they can be undone and the exact action, plus this session's decisionsHold to approve, deny
Second opinions4Every time an agent asked the main model for help, and how it turned outOpen the task, stop the task
History5A step-by-step replay with every safety check, and the audit logPick a task and step through it
Rules6Allowed, Ask me or Never for each agent and kind of action, worked out from the real policy rulesClick a square to see why
Tools and connections7Registered tools and the 23 outside servicesSwitch connections on, save keys, give a connection to an agent
Skills8Yours: the skills you write. Learned: what agents learned, its trust stage, permissions and track recordWrite, change and delete your skills; read the learned ones
Memory9What agents know, notes on hold, and the shared boardApprove (hold) or reject notes on hold
Models0Where agents think, the local sizes that fit this computer, the online model, each agent's placementSet up an online model and its key
System healthfrom the launcherTwelve parts of Verse, checked every 5 seconds, and this session's numbersCopy a report
Settings,Voice, Hearing, Updates, Model, Memory, DisplayChange them; forget what Verse knows about you

Keys and gestures

KeyDoes
Space heldPush to talk. Letting go ends your turn, keeping 350 ms for words still in flight.
HHands-free listening on or off
WThe windows launcher
A and ,Agents and Settings, open or closed
1 to 9, 0Agents, Tasks, Needs your go-ahead, Second opinions, History, Rules, Tools and connections, Skills, Memory, and Models
EscCloses the launcher, then the top window
F1The handbook
EnterSends what you typed; Shift+Enter starts a new line

None of these keys act while you're typing in a field. Approving an action, approving a memory note and removing a saved key all use a hold: the button fills over 1.2 seconds, and letting go early or sliding off cancels. When Verse asks “Should I approve it?”, a bare “yes” or “no” answers it for 2 minutes.

Voice and hearing

Voice
Kitten TTS v0.8 mini (80 million parameters) in a background worker. The model is ready in 1.5 to 3 seconds, the first audio arrives about 1.1 seconds after Verse starts a line, and there's no silence between chunks. Eight voices: Rosie (the default), Bella, Jasper, Luna, Bruno, Hugo, Kiki and Leo, at 0.5× to 2× speed.
Crystal FX
A light lift in presence and air, a slow stereo shimmer and a short glass-bowl tail, mixed low so the words stay clear.
Hearing
Moonshine v2 medium, streaming English recognition (305 MB), in its own worker, with echo cancellation, noise suppression and automatic gain. What you say while it's still loading is kept, up to about 30 seconds, and recognised once it's ready.
Memory model
bge-small-en-v1.5 embeddings (34 MB), for Verse's memory of you.
Downloads
All three models are fetched at pinned versions and checked by SHA-256 before use.

How Verse talks

Verse is curious, warm and a bit dry. It says plainly that it's an AI if you sincerely ask, follows up on what it remembers, keeps humour light, and is brief when you're busy or frustrated.

NewsWhatWhen Verse says it
UrgentAn approval is needed, an agent is stuck, your task failedAs soon as you aren't mid-sentence, cutting into a conversation if need be, then picking up again: “Anyway, as I was saying…”
MajorYour task finished; a helper's task failedAt the next pause, as an aside: “Oh, quick update.”
MinorProgress, a tool hiccup, everything quietOnly when nobody is talking. During a conversation it's held and summed up later.

Similar news within 1.5 seconds is batched (“Three tasks just wrapped up.”), a tool error fixed within 5 seconds is never mentioned, and stale news is dropped.

The handbook

Press F1 for the Verse Handbook, laid out like a printed manual: two-page spreads, chapter openers with big pixel numerals, thumb tabs down the edge, and a search across the whole book with Ctrl F. Its spot colour follows your tube. The same text is in a terminal with verse-agent handbook.

  1. Meet Verse
  2. Talking
  3. Getting around
  4. Agents
  5. Your go-ahead
  6. Tools, memory
  7. Models
  8. Settings
  9. Good habits
  10. Problems
  11. Terminal

Accessibility

Every setting six tabs, kept on this machine
TabSettingOptionsDefault
VoiceVoiceEight Kitten voicesRosie
VoiceSpeed0.5× to 2×, in steps of 0.051.00×
VoiceCrystal FXOn or offOn
HearingModePush to talk or hands-freePush to talk
HearingWake word“Hey Verse”, built in
UpdatesNarrationImportant only, normal or everythingNormal
UpdatesInterrupt meApprovals and failures cut in, or wait for a pauseOn
UpdatesShow toastsOn screen as well as spokenOn
ModelLocal model and biasRead only, from platform/model-config.json
ModelBackup modelOn or off; off means no graphics check, no download, nothing loadedOn
ModelWhich oneQwen2.5 0.5B, Llama 3.2 1B, Qwen2.5 1.5B, Llama 3.2 3B, Phi 3.5 miniQwen2.5 0.5B
MemoryWhat Verse learned about youA list, Forget that, Forget everything
DisplayShow Verse as3D crystal or oscilloscope3D crystal
DisplayTubeGreen, blue, amber or whiteGreen
DisplayScanlines, glowOn or offOn
DisplaySide panels, technical namesOn or offOff
DisplayQualityLow or high, for the crystal, the next time it's shownHigh

What agents can do

Every agent starts with no permissions. It can use a tool only when the tool is in its charter and a rule allows the call.

Agents and their charters

An agent is a worker with one job. Its charter is its job description: what it's for, which tools it may use, how far it may go on its own, its budget, when it must ask, what it may remember, and where its thinking may happen.

AgentJobToolsBudget
ScribeWrites down the notes, reminders and summaries you ask for as files in the notes folder, and finds or reads them againnote read-file search-files write-file6 steps, 4 tool calls, 60,000 tokens, 180 seconds
DemoRecords a short note and finishesnote8 steps, 6 tool calls, 100,000 tokens, 2 minutes

The scribe's file tools reach one folder only: Documents/Verse Notes. Writing a file is reversible: the change is staged, read back, and only then kept.

A charter also sets escalation triggers, a risk policy, a memory scope and where its data may go. Blocks you leave out get safe defaults: 20 steps, 15 tool calls, 200,000 tokens and 600 seconds.

To make an agent, use New agent on a collective's board: a role, what it's for, up to 12 tools, and Quick (8 steps, 6 tool uses, 5 minutes) or Thorough (20 steps, 15 tool uses, 15 minutes) limits, with 80,000 tokens of thinking. The platform registers it at once, with no restart, and adds one allow rule per tool up to that tool's own size of change, so anything at “changes others see” or bigger still asks you first. Tools that belong to a connection aren't offered there: they're given in Connections, which knows their keys. The Charter window's five-step form shows any agent's real charter, but can't save one yet.

Each agent works through a bounded loop: look, update what it believes, plan, propose one action, and then the platform validates, authorises, runs and checks it. Budgets are hard limits. When an agent is stuck or unsure, it sends a short summary, never its whole conversation, to the central model for a second opinion.

Skills and collectives

Your skills
A /name skill reaches the model as your own instruction, headed skill: careful, and goes with any task it's handed to as a constraint. On a board each module can carry up to five skills of its own, which shape that agent's work in that collective. Names use lowercase letters, digits and dashes, up to 40 characters. You can keep up to 100 skills, each with instructions up to 4,000 characters, and use up to five on one request.
The board's rules
Checked as you edit and again when you save: a tree under Verse, with every module wired to exactly one manager; at most 16 modules and five levels; a collective module is a leaf; only agents below a node, at least one, and no node inside another; collectives nest at most three deep, and none can end up inside itself.
A run
A module with no team gets the whole request. An agent with a team takes charge and plans among its team and itself. Several modules wired to Verse are led by the collective, speaking as Verse. A plan has one to six steps, each a task of its own; steps with nothing to wait for run at the same time, and a waiting step gets what the earlier ones did. Whoever planned sums up in two to four sentences. The run counts as done when at least one step worked, and the summary names any step that failed or was skipped, and why.
Approvals
You asked for the run, so the hand-offs need no approval. Anything a member then does still goes through its charter, the rules and approvals. A run still going after 30 minutes stops and fails.

Nodes

Verse Node is a small program that holds a whole agent platform of its own. Verse works out each node's setup from the boards: its teams, their agents and rules, the skills they carry, the connections they use that need no key, and the model choice, never a key. It sends a setup only when it changed, and one that arrives during a run waits for the run to finish.

Pairing and the connection under the hood
PartHow it works
PortsThe node listens on TCP 47800 and answers discovery on UDP 47801
Finding nodesVerse broadcasts a probe on the local network and gathers the answers for 1.5 seconds. Discovery is only a phone book: trust comes from pairing.
PairingA 12-character code, typed once. A node takes one try every 1.5 seconds and makes a new code after five wrong ones. Once paired with one Verse, it refuses any other until it's reset.
HandshakeShaped like Noise NNpsk0: fresh X25519 keys every time, each side proving it holds the shared key with HMAC-SHA256. While pairing, that key comes from the code (scrypt); afterwards it's a 32-byte secret both sides derived and never send.
MessagesAES-256-GCM, with a sequence number that must grow by exactly one, so a replayed, reordered or altered message ends the connection
BrowsersA connection that carries an Origin header is refused
KeysVerse keeps up to 32 paired nodes, each node's secret sealed by the operating system like a model key

Tools

Tools are narrow by design: separate read and write tools, and no general shell, SQL, HTTP or file tool. Registering a tool grants it to no one.

FamilyToolsNotes
Standard (16)read-file, search-files, write-file, sandbox-run, fetch-url, web-search, query-database, send-message, store-memory, recall-memory, publish-finding, delegate-subtask, ask-human, check-answer, save-artifact, get-artifactWriting a file is checked by reading it back. Fetching a URL never follows redirects and refuses private addresses. A helper gets only what's left of the budget.
Developerlist-dir, edit-file, build, run-tests, lint, format-code, git-status, git-diff, git-log, git-commitOne fixed command per ecosystem; git hooks always run
Documentsfile-info, find-duplicates, move-file, delete-fileMoving never overwrites; deleting moves to a recoverable trash folder
Images and visiontake-screenshot, view-imageThe two latest images go to a model marked as able to see
Databasesdb-query, db-explain, db-inspect-schema, and a migration flowOne read statement per call. Migrations are planned, tested on a scratch copy and backed up before a person approves them.
Everyday workget-time-context, calculate, read-table, check-data-quality, create-document, check-document, request-reviewDates and sums never rest on the model
Changes to other systemslist-change-targets, preview-change, apply-change, get-change-statusA person approves the exact preview, and it's applied once
Business recordsdescribe-records, get-record, find-records, get-record-history, get-metric-definitionThe model never writes SQL
Audio and videomedia-info, extract-frame, read-transcript, transcribe-audio
Skillsuse-skillRuns a stored, tested skill in the sandbox
ImportedMCP tools and A2A agentsThe same gateway; what they send back is untrusted

A step's prompt lists at most 16 tools, ranked by how well they match the goal and the step, and the step's own tool is always kept. Tools can be switched off for everyone or for one role, and the gateway refuses a switched-off tool too. Web searches go to Brave, Tavily or Exa, with at most 20 results.

In the Verse Agent app only the scribe's four tools are granted. The build, test, lint and git tools stay off there, because they run a project's own commands.

Connections

Connections bring in tools from outside services through MCP servers. Nothing a connection sends back is trusted on its own; it goes through the same checks as everything else. A connection that switches things in the real world, like Home Assistant, asks for your go-ahead for every action except reading.

Models

A model does the thinking. By default it's a small model on your computer. You can add an online model for harder work and choose how much goes to it. Anything private stays on your computer no matter what.

WhereProviders
On this deviceOllama; llama.cpp (llama-server, port 8080); vLLM (port 8000); a Verse AI server on your machine or network; any OpenAI-compatible server
Online, set up in the appVerse AI (https://www.verse-realm.app/api/agents/v1, with a key and secret), Claude, OpenAI, Kimi
Online, by configGemini, OpenRouter, xAI (Grok), DeepSeek, Mistral, Hugging Face Inference Providers
Tests and offline workA scripted, predictable fake model

Sizes that run on your computer

SizeModelDisk, aboutMemory needed
XSGemma 4 E2B1.6 GB4 GB
SQwen3-4B-Instruct-2507 (the platform's default)2.5 GB8 GB
MQwen3-8B5 GB12 GB
LQwen3-14B9 GB16 GB
XLgpt-oss-20b12 GB16 GB

Routing. A bias from 0 to 100 sets how much goes online: 0 is local only, a hard ban; 100 is online only; anything between is the chance a call goes online. Each role can have its own bias. A call falls back to the other tier only for passing failures, like a timeout, a rate limit or a server error, or when the prompt is too long. A refused key or a bad request is reported, never “fixed” by sending your prompt somewhere else.

Castes. Roles can also be given a caste: lower is local only, middle is half and half, elite is online only. A caste wins over a role's bias, which wins over the overall bias.

What Verse AI adds

Verse AI is the platform's own model API, from this site: OpenAI Chat Completions plus what the agents know about each call.

Only tools it may use
The reply's shape allows only the tools this agent is allowed, with each tool's exact inputs
Thinks as hard as the step needs
Reasoning effort follows the step's depth
Reuses what it already read
A cache key for the instructions every step repeats
Knows who is asking
Each call says its purpose, the agent's role, the task, and whether it must stay local
Too long goes elsewhere
A prompt too long for the model is sent to the other tier instead of failing

The backup model

When neither the local nor an online model answers, Verse talks through a small model that runs inside the app on your graphics card. It can't give agents work, and it's unloaded once the usual model is back.

ModelDownloadGraphics memoryGood for
Qwen2.5 0.5B (default)0.29 GB0.9 GBQuickest; fine for small talk, shaky on facts
Llama 3.2 1B0.7 GB0.9 GBA little more natural
Qwen2.5 1.5B0.88 GB1.6 GBThe best balance
Llama 3.2 3B1.82 GB2.3 GBA capable graphics card
Phi 3.5 mini2.15 GB3.7 GBBest at reasoning, and the heaviest

At launch the app warms the local model before your first question; until it's ready, Verse handles commands and small talk itself and says it's still waking up.

Memory

There are three separate memories, plus skills.

What Verse knows about you
A small vector store on this machine only. A fact is kept only if most of its words are things you said this turn or the one before, never if it looks like a secret, and a near-duplicate refreshes the old fact instead of adding one. Up to six relevant facts reach the model as evidence, and Verse never recites them unless you ask.
What agents know
Long-term memory in six namespaces, with a single way in: checked for where it came from, de-duplicated, checked for contradictions, then held or promoted. An agent can never promote its own memory, and only verified memory reaches a model.
The shared board
What agents tell each other during a task, each item scored so that old or uncertain items sink.
Skills
Reusable programs with tests and a permission list. Only validated or trusted skills can be used, and they run in the sandbox.

Approvals and safety

Agents work on their own until a step would change something that matters. Every action has a size, and big enough ones wait for you. Every change is checked; a change that doesn't check out is undone. Everything is written down.

SizeIn the appCan I undo it?Platform name
Just thinkingNothing to undocognitiveOnly
Look onlyNothing to undoreadOnly
Changes it can undoYes. It can be rolled back.reversibleWrite
Changes others seeNot fully. Other people will see it.significantSharedWrite
Can't be undoneNo. Once it's done, it's done.irreversibleOrHighImpact

What every action goes through

  1. Check its shape
  2. Size the risk
  3. Rules, deny by default
  4. Your go-ahead, if needed
  5. A one-time permit
  6. Input screen
  7. Prepare
  8. Run, sandboxed or as a transaction
  9. Output screen
  10. Check the result independently
  11. Keep it, or undo it
  12. Write it down
Screens
On the way in: task alignment, argument size, paths that try to escape, web addresses (private and cloud-metadata addresses are refused at connect time), secrets, SQL scope and rate limits. On the way out: leaked secrets and oversized output are blocked, and text that looks like injected instructions is marked untrusted.
Trust levels
Every piece of context carries a level: 0 untrusted outside data, 1 retrieved internal data, 2 an agent's observation, 3 your instruction, 4 system policy. Only levels 3 and 4 can be instructions, and that's enforced by the code's types, not by asking the model nicely.
Sandbox
Code runs with an isolated working folder, a cleared environment, no network by default and resource limits. The container sandbox (no network, read-only root, every capability dropped) is a real boundary on all three operating systems.
Always on
Nothing is allowed unless a rule says so. Anything that can't be undone asks you first. An agent that sounds sure still has to ask.

The terminal command

verse-agent is Verse without the window, in any terminal. It needs Node 22.18 or newer and the built platform. It's named verse-agent, not verse, so it never shadows another tool.

CommandDoes
verse-agentThe full-screen view: conversation, agents and activity in panes
verse-agent chatTalk line by line
verse-agent say <words>Say one thing and print the answer
status agents tasks approvals health modelsAnswer and exit; add --json for scripts
verse-agent task <agent> <goal>Give an agent a task
verse-agent approve [n], deny [n]Decide. Approving asks you to confirm, and the two biggest sizes need “yes” typed in full.
verse-agent cancel <task>, history <task>Stop a task, or replay it with its safety checks
rules tools skills memoryWhat agents may do, their tools, what they learned, what they know
verse-agent connectionsList them, switch one on or off, save a key (typed hidden, then sealed), give or take one from an agent
verse-agent meWhat Verse knows about you; remember or forget
verse-agent models use <provider> <model>Choose the online model and how much goes online
verse-agent handbook, search <words>The handbook in the terminal
verse-agent serveOne platform shared by every terminal
verse-agent tmuxA themed tmux session, or built-in panes where tmux is missing

In chat, start a line with @scribe to give the scribe work. Panes split like tmux: press Ctrl+B, let go, then % splits side by side and " top and bottom. When an agent needs your go-ahead, a Needs you pane opens by itself without taking your typing away.

Updates and distribution

How it works

One central model, many bounded agents, and a single gateway between any decision and its effect.

The pieces and how they talk

Verse Agent (Electron 44)

Main process

  • Starts, watches and restarts the platform
  • The companion: memory, then model, then learning
  • Verse's memory of you
  • Sealed keys and connections

The window, sandboxed

  • The crystal or the oscilloscope
  • Voice and hearing, each in a worker
  • Companion, narrator and phrasebook
  • The command center and the handbook
  • The backup model on the graphics card

Local HTTP on 127.0.0.1, with a fresh key each launch

A live stream of every step

The agent platform (.NET 10)

AgentPlatform.Api

  • REST under /api/v1
  • The task worker
  • The agent loop and the action gateway
  • Policy, tools, memory, skills
  • The model runtime, local or online
  • MCP servers

Models

Ollama, llama.cpp, vLLM, Verse AI, Claude, OpenAI, Kimi and others

One central model, many bounded agents

A large central model coordinates many smaller agents. Each has bounded autonomy, a typed state, a short-range planner, local memory, its own tools, an estimate of its own uncertainty, checks on its work, and a way to ask for help. What a model sends back is only ever a strictly parsed decision: act, revise the plan, finish, or escalate. The model never calls a tool.

The C# solution has thirteen source projects, including the harness command, plus four test projects and three examples, with strict boundaries: the core logic never references a model SDK, a database library, a web framework or a workflow engine.

The loop

  1. Look
  2. Update beliefs
  3. Plan
  4. Propose one action
  5. Validate
  6. Authorise
  7. Run
  8. Check
  9. Update state
  10. Save a checkpoint
  11. Continue, finish or escalate

The action gateway

The only path from a decision to a real effect. Every stage can say no, and no is the default.

Durable tasks, transitions and checkpoints

Tasks are accepted once per key, retried with backoff (three attempts by default), set aside after repeated crashes, and parked while they wait for an approval. An approval is decided exactly once, and the task then resumes from its checkpoint. Every transition is stored, in order, and never rewritten.

Checkpoints carry a version that works as a fencing token: of two workers resuming the same task, only the one whose checkpoint lands may act. Verse reads the platform's own records of the last ten tasks you may see, so when you ask “What went wrong?” it answers with the failing step and the exact error, in plain words, and never guesses.

Every kind of transition and how the app shows it
KindMeaningIn the app
TaskAcceptedA run started“Started: …”
PlanCreatedA plan was made“Made a plan”
ActionProposedOne action was chosenA replay step: “Used …”
PolicyDecisionThe rules decided“A rule blocked what it tried” (denials only)
ApprovalRequested, ApprovalDecisionWaiting on a person, then decided“Needs your go-ahead”, then “You approved” or “You said no”
ToolExecutionStarted, ToolExecutionCompletedThe tool ran and finished“Using …”, or “That step failed.”
VerificationCompletedThe result was checked“The result didn't check out” (failures only)
StateCommitted, RollbackCompletedKept, or undone“Undid it. Nothing changed”
EscalationRaisedAsked the central model“Asked the main model for a second opinion”
ActionReconciledAn interrupted action was checked on resume“Checked a step that was cut off”
StepRejectedThe loop refused a step“Redoing a step: it said it was done, but the goal isn't met yet”
TaskAttemptFailedA run crashed and will be retried“Crashed and will try again”
TaskCompleted, TaskFailed, TaskCancelled, TaskDeadLetteredThe end“Finished”, “Stopped”, “Cancelled”, “Gave up after several tries”

The platform's API

Every route is under /api/v1, needs an operator or approver key, and is rate limited per key (120 requests a minute by default). Another tenant's objects answer “not found”, so ids don't leak.

Every route the app calls one for one
RouteUsed for
GET /health/live, /health/readySystem health, and the wait at startup
GET /eventsA live stream of transitions; a slow reader never slows an agent down
GET /agentsThe roster, with tools, limits, budget and data placement
POST /companion/replyOne conversational turn
POST /tasks, GET /tasks/{id}, /state, /transitions, /audit, /progressGive work, follow it, replay it, audit it
POST /tasks/{id}/cancelCancel
GET /approvals, POST /approvals/{id}Waiting approvals; deciding needs the approver role
GET /workspaceThe shared board
GET /agents/{id}/memories, POST /memories/{id}/promote, /rejectReviewing what agents saved
GET /tools, /policies, /skills, /connectionsRead-only views for those windows
GET /prompt-skills, PUT /prompt-skills/{name}, DELETE /prompt-skills/{name}Your skills: list, save, delete
GET /collectives, PUT /collectives/{name}, DELETE /collectives/{name}Collectives and their boards; saving checks the board, and deleting one that another collective uses is refused
POST /collectives/{name}/runsStart a collective's run
POST /agentsMake an agent, with one allow rule per tool
POST /a2aAn optional agent-to-agent endpoint

A conversation turn, end to end

  1. You speak or type. Moonshine turns speech into a line, and the app checks it for a command. Commands are handled at once.
  2. Otherwise the window sends your message, the last 12 turns and the recent activity. The main process recalls up to six facts about you and asks the platform for a reply.
  3. The platform builds the model's context: the persona and speaking rules as system policy, your message as your instruction, the conversation and remembered facts as data, and the agents' work as observations. It goes through the same model runtime as the agents, so the same model choice and privacy rules apply.
  4. The reply carries what to say, up to five facts to remember, up to two topics, and optionally a job for an agent, which becomes a real task.
  5. Proposed facts are checked against what you said before they're stored.
  6. The window shortens the reply for speech and speaks it.

Data placement

A charter, a task or a tool's output can mark data as local only. A run takes the strictest of the three and keeps it: once local-only output is seen, every later call in that run stays local. Local-only work goes only to local models, never online, not as a fallback, not through the bias, not for a second opinion, and it's refused when no local model exists. In the app this is Keep private things here, which is always on.

Security and keys

The app
The window is sandboxed, with no Node access and a minimal bridge that never exposes the platform key. No pop-ups, no navigating away, a strict content security policy, and every permission denied except the microphone.
Model keys
Encrypted by the operating system (DPAPI on Windows, the Keychain on macOS, GNOME Keyring or KWallet on Linux), stored owner-only, and tied to that folder and account, so a copy elsewhere can't be read. The server address is sealed with the key, so editing a file can't redirect it. The window only ever sees the last four characters.
Plainly
A program already running as you can ask the operating system to decrypt. The encryption protects the file at rest: copies, backups, other accounts and other computers.
The platform
Deny-by-default policy that fails closed, structural trust levels, one-time permits, screens on the way in and out, transactional rollback, memory held for review, locks, idempotent runs, an append-only audit, pinned MCP definitions and approvals bound to the exact action. No default credentials in production.

Persistence and observability

Where things live on your computer
WhatWhere
The model choiceplatform/model-config.json
Agents and their rulesplatform/agents.json
Connections as shippedplatform/mcp-servers.json
Notes the scribe writesDocuments/Verse Notes
Your profile folderWindows %APPDATA%/Verse Agent, macOS ~/Library/Application Support/Verse Agent, Linux ~/.config/Verse Agent
Verse's memory of youcompanion/memory.json in the profile folder
Saved model keyscredentials.json in the profile folder, encrypted
Connection switches and keysconnections.json in the profile folder, encrypted
Your skills and collectivesskills.json and collectives.json in the profile folder
Paired nodesnodes.json in the profile folder, each secret sealed by the operating system
A node's own filesOn that computer: Windows %APPDATA%/Verse Node, Linux ~/.config/verse-node
Terminal settingscli/settings.json in the profile folder
The backup modelThe app's own browser storage

Three languages, one behaviour

The C# platform is the reference. The Python port (3.11 or newer, standard library only) and the Node.js port (TypeScript, Node 18 or newer, no runtime dependencies) are faithful, independently tested copies of the whole core: the loop, the gateway, the screens, policy and permits, memory, skills, orchestration, every model provider and MCP. They share one config format, one policy, the same test vectors and the same fault-injection checks. The Verse Agent app runs the C# build.

Specs and downloads

Versions, test counts and the commands to build it yourself.

Stacks and versions

PartBuilt with
Platform.NET 10 (LTS) and C# 14, ASP.NET Core minimal APIs, EF Core 10 (SQLite, PostgreSQL), Polly, OpenTelemetry, FluentValidation. Tests with xunit v3, AwesomeAssertions, NSubstitute and Testcontainers.
Python portPython 3.11+, standard library only; pytest
Node portTypeScript ESM, Node 18+, no runtime dependencies; vitest
Verse Agent appElectron 44.5.1, TypeScript 7, Vite 8, Preact 11, three.js 0.186 with postprocessing, onnxruntime-web 1.30, Moonshine WASM, WebLLM 0.2.85
verse-agent commandTypeScript run directly by Node 22.18+
Verse NodePlain JavaScript run by its own Electron 44.5.1, ws 8.18.3, node:crypto only for the protocol, and the self-contained C# platform
Packagingelectron-builder 26.15.3 (NSIS on Windows, .deb and AppImage on Linux), and dotnet publish self-contained for each system
On-device modelsKitten TTS mini v0.8 (78 MB plus 3.3 MB of voices), Moonshine v2 medium (305 MB), bge-small-en-v1.5 (34 MB)
VersionsPlatform 1.1.1; app 0.1.0

Operating systems

The platform runs on Linux, macOS and Windows, and its CI builds and tests on all three. Verse Agent runs on all three through Electron's Chromium. On Linux the backup model needs VERSE_WEBGPU=1 and saving keys needs GNOME Keyring or KWallet; on macOS the microphone must be allowed; Windows terminals have no tmux, so verse-agent tmux uses its built-in panes. Installers are built for Windows and Linux only. Verse Node has installers for Windows (x64) and Linux (x64 .deb and AppImage); a Mac runs a node from a checkout.

Tests

SuiteTestsAllowed skips
C# unit6381
C# security550
C# integration954: three PostgreSQL tests that need Docker, one live-Ollama test
C# trajectory30
Python5331
Node5321
Fault injection, each language46 checksThe container check, without Docker
Verse Agent1911, a file-permission test skipped on Windows

Build and run

ToRun
Build and test the platformdotnet test (no cloud, model or database needed)
Run the APIdotnet run --project src/AgentPlatform.Api
The full local stackdocker compose up -d
A real local modelollama pull qwen3:4b-instruct-2507
Python and Node testscd python && python -m pytest -q, cd nodejs && npm test
Compare the three languagespython scripts/harness_compare.py --iterations 200
Install the appnpm install (fetches voice 82 MB, hearing 305 MB, memory 34 MB)
Build the app's platformnpm run platform:build (needs the .NET 10 SDK)
Run the appnpm run dev or npm start
Test the appnpm test, npm run typecheck
The app's installersnpm run dist (this system), npm run dist:linux (from Windows, through WSL2)
Verse Node's installersnpm run dist:node, npm run dist:node:linux
Everything to hand outnpm run deploy:all (node installers first, then the app's and the platform's packages, with checksums)
Environment switches for Verse Agent
VariableEffect
VERSE_USER_DATAAnother profile folder for memory, keys, connections and terminal files
VERSE_NOTES_DIRThe agents' notes folder
VERSE_MODEL_CONFIG, VERSE_AGENTS_FILE, VERSE_MCP_SERVERSOther model, agents and servers files
VERSE_NO_PLATFORM=1Don't start the agent platform
VERSE_DISABLE_GPU=1Software rendering
VERSE_WEBGPU=1Turn on WebGPU on Linux, for the backup model
VERSE_THEME=dark or lightOverride the system theme for the handbook
VERSE_FAKE_MIC=<wav>Use a recording as the microphone, for testing
VERSE_SKIP_MODEL_FETCH=1Skip fetching models during install
VERSE_DEBUG=1, NO_COLORTerminal logging, and no colour
VERSE_NODES_FILEKeep Verse's paired nodes in another file
VERSE_NODE_HOME, VERSE_NODE_PLATFORMA node's folder, and a node run on a checkout's own platform build

Downloads

Verse Agent 0.1.0, Verse Node 0.1.0 and the platform's release 1.1.1: the versions this page describes. Check any download against SHA256SUMS.txt.

The licence in short: free for personal and commercial use, so build and sell whatever you like with it, but you may not claim the platform as your own or resell or redistribute it as your own product or managed service.

Verse Agent the app and the verse-agent command

For Windows 10 or 11 and 64-bit Linux. Nothing else to install: the agent platform inside is self-contained. There's no Mac installer yet; on a Mac, run it from a checkout (see Build and run above).

Windows: run the installer. It installs for your account only and puts verse-agent on your PATH (open a new terminal to use it). It isn't code-signed yet, so SmartScreen asks first: choose More info, then Run anyway.

Linux: install the .deb, then open Verse from the Applications menu. On any other distribution, make the AppImage executable and run it.

sudo apt install ./verse-agent_0.1.0_amd64.deb
verse-agent-desktop   # the app
verse-agent agents    # the terminal command

# or the AppImage, on any distribution
chmod +x Verse-Agent-0.1.0-x86_64.AppImage
./Verse-Agent-0.1.0-x86_64.AppImage
./Verse-Agent-0.1.0-x86_64.AppImage --cli agents

Verse talks through gemma3:1b in Ollama by default (ollama pull gemma3:1b), or pick an online model in the Models window.

Verse Node another computer that runs agents for Verse

Install it on a second computer on your network and open it, then pair it from Verse (Agents, Collectives, Open the board, Add node) with the 12-character code it shows. Verse Agent's installers carry these too, so Verse can save them for you.

Windows: the installer is for every account, so it asks for administrator rights once. It lets Verse in through Windows Firewall on private networks only, and puts verse-node on the PATH.

sudo apt install ./verse-node_0.1.0_amd64.deb
verse-node status     # the terminal command; the AppImage takes --cli status

# if ufw is on
sudo ufw allow 47800/tcp && sudo ufw allow 47801/udp

C# and .NET csharp/

Needs the .NET 10 runtime, or the SDK to develop.

Unzip the NuGet packages, add the folder as a package source, and install:

# point NuGet at the unzipped folder
dotnet nuget add source /path/to/downloads/csharp/nuget --name agentplatform
dotnet add package AgentPlatform.Infrastructure

The API zip is the REST service: unzip it and run dotnet AgentPlatform.Api.dll. Health is at GET /health/live, the API is under /api/v1 with an X-Api-Key, and it's configured through appsettings.json or the environment. The worker zip is the background task runner: dotnet AgentPlatform.Worker.dll. Both include an example model config and the local model catalog.

Python python/

Needs Python 3.11 or newer, with no other dependencies.

pip install agent_platform-1.1.1-py3-none-any.whl
python -c "import agent_platform; print(agent_platform.__version__)"

Node.js and TypeScript nodejs/

Needs Node 18 or newer, with no runtime dependencies. ESM, with TypeScript declarations.

npm install agent-platform-1.1.1.tgz

Every build works offline out of the box, with in-memory stores and a scripted model: no API keys or database needed to try it.

Glossary the words used on this page and in the app
Agent
A worker with one job, a set of tools, a budget and rules, like the scribe
Charter
An agent's job description: what it's for, its tools, limits, when to ask, what it may remember and where it may think
Task
One piece of work given to an agent. It may hand parts to helpers.
Step
One turn of the loop: look, think, act
Budget
Hard limits on steps, tool uses, tokens and time
Size of change
0 just thinking, 1 look only, 2 changes it can undo, 3 changes others see, 4 can't be undone
Go-ahead
A person's yes or no for one exact action
Hold to approve
A button you hold for 1.2 seconds, so a stray click never approves
Action gateway
The only path from a model's decision to a real effect: it checks, runs, verifies, rolls back and records
Rule
An allow or deny for a role, an action and a resource, up to a size
Permit
A short-lived, single-purpose pass issued after authorisation and used up at once
Screens
Checks on a tool's input (paths, addresses, secrets, SQL) and output (secrets, size, injected instructions)
Sandbox
Where code runs isolated; a container is a real boundary
Rollback
Undoing a staged change that didn't check out
Second opinion
An agent asking the central model for help with a short summary of where it is
Central and local model
The bigger online tier, and the tier on this device
Bias
How much of the work goes to the central model, overall or per role
Local only
A mark that keeps data on local models, for the rest of a run
Transition
A recorded event in a task's life
Checkpoint
A saved copy of an agent's state, so a task resumes after a restart
Trust level
How far a piece of context is believed, from untrusted outside data (0) to system policy (4)
Shared board
What agents tell each other during tasks, ranked by importance
On hold
A note an agent saved that nobody has checked yet
Learned skill
A reusable, tested program an agent learned or was given
Your skill
Instructions you wrote once and switch on for one request with /name. They go with any work handed out.
Collective
A team of agents and smaller collectives that takes a request together, asked with @name
Board
Where a collective's team is drawn, as a patch bay: modules wired with cables, Verse at the top. Only the wires carry meaning.
Module
One place on a board: an agent, a collective or a node
Node
Another computer on your network running Verse Node, its own agent platform. On a board, a circle with the agents that run there below it.
Pairing code
The 12-character code a node shows, typed into Verse once to pair them
Relay
The path a node's model calls take back to Verse, which adds the key, so keys never leave the main computer
MCP
Model Context Protocol, the standard for connecting outside tool servers
Connection
An MCP server switched on in the app
Change action
A connection tool that changes something for you: preview, approve, apply
A2A
The agent-to-agent protocol, for calling or exposing agents across systems
OPA
Open Policy Agent, an optional outside policy engine
Narration
What Verse says about the agents' work, from the phrasebook
Muse
Verse bringing something up on its own while agents work
Phosphor and tube
The CRT colour scheme: green P1, blue P7, amber P3, white P4
Backup model
A small model inside the app, on the graphics card, for when nothing else answers
Verse AI
The platform's own model API, self-hosted or at verse-realm.app
VXT
The credit the hosted Verse AI service bills in