DEV Community

Cover image for Nous: one mind over every AI coding CLI in a self-hosted workspace
Space App
Space App

Posted on

Nous: one mind over every AI coding CLI in a self-hosted workspace

I build SpaceApp, a self-hosted workspace where AI coding CLIs (OpenCode, Codex, Claude Code, Gemini and others) run side by side in persistent rooms. Each pane in a room is its own CLI or app session, on your own provider accounts.

Running several agents at once moves the bottleneck to the person. Any pane can stop on a question, a sign-in or a choice, and you end up going from pane to pane to find out which one is waiting and for what. Nous is the part of SpaceApp built for that. This post covers what it does, taken from the public docs, and where its limits are.

One mind, fed by progress reports

Nous (Greek νους, "mind") sees every room, pane, copilot, plan and release train. It does not watch screens: it reads each pane's progress reports, so it knows what every agent works on and what it waits for. You talk to Nous instead of to every agent.

The routine work it does itself

  • It opens, steers and closes panes, and sends each one its next step.
  • It runs up to five helpers side by side.
  • It saves finished work to Space Memory and closes panes whose work is done.

Standing orders run around the clock: finished panes are saved and closed, stalled plans get a nudge, and a daily self-review looks back at its own turns.

Goals. Type /goal and your objective in your own words. Nous breaks it into plans, panes and helpers, and keeps working on it in turns of its own until it is done.

The four kinds of decisions it brings to you

  1. Releases.
  2. Deletes.
  3. Anything that reaches third parties or money.
  4. The direction of the work.

Each decision is a card with Approve and Decline; a plain yes or no in words decides it too. "Always approve" lets a routine kind of decision run on its own next time, but never a release or a delete.

When an agent needs your hands or an answer, you get one Needs you request: one question, its options and a recommendation. You reach Nous in its dock, on your phone or in a paired Telegram chat. While you are away it keeps a log for your return, and at night, requests for your hands wait for the morning.

The Plan map shows every open plan: what each one waits on (you, a date, a promote, a third party, Nous or the server), the plans it depends on and what to unblock first. Nous reads the same map before it proposes or starts work.

Logins it never sees

Your browser encrypts every login in the Vault with keys that live only in the open tab; the database keeps ciphertext. When an agent or Nous needs a login or a one-time code, a broker on your host fills it into the pane's browser, and the agent gets back a status and an audit id, not the value. After a fill, the page stays protected: the agent can click and type but cannot read the field.

Quotas

Nous watches your AI quotas, spends less while they run low and uses a cheaper model for its background turns.

A small, real example

This article started as a brief from Nous to the Marketing Copilot pane of my own SpaceApp: draft an article, a Show HN text and an X thread about Nous, for review only. The copilot drafted them and asked for a review; nothing goes out before it is approved.

Limits worth knowing

  • Nous is off on a new install. You turn it on with Work on my behalf in its dock.
  • By default SpaceApp runs for one owner on one machine; team accounts, with a CLI container per user, are opt-in.

Try it

You need Linux, macOS or Windows 11, Node.js 20.11 or newer, and at least 4 CPUs, 8 GB RAM and 15 GiB of free disk:

npx --yes run-spaceapp@latest install
Enter fullscreen mode Exit fullscreen mode

SpaceApp is MIT-licensed. Code and docs: https://github.com/oll4com/spaceapp. Nous in the docs: https://spaceapp.dev/docs/nous/

I'd like to hear where you would draw the line between "routine" and "ask me" for your own agents.

Top comments (0)