🪐Your Space/ docsOpen the app →

What is Your Space

Your Space is a personal council: a chat portal where you create AI agents with genuinely distinct personas, talk to them one-on-one, and put several of them in a room together. In group chats the agents don't just answer you — they react to each other: agreeing, heckling, pushing back, and building on what was just said, each in an unmistakable voice.

Everything compounds: agents extract durable memories from your conversations, share a picture of who you are (with your permission, per agent), and get smarter about you over time.

Agents & personas

Spawn an agent from ✎ New chat → ✨ Spawn a new agent or the Agents tab. You give a name and a one-line brief — “my dad”, “Elon Musk in advisor mode”, “an alien advisor who thinks in geological timescales” — or start from a template (Therapist, Zen PM, Coach, Historian…).

A persona designer expands the brief into a full system prompt: worldview, what they care about, what they push back on, how they behave in a room with other agents — plus concrete voice mechanics (sentence length, vocabulary, punctuation habits, what they'd never say). All of it is stored as plain text you can edit and tune in the agent editor. Per agent you can also set the model, tool access (MCP servers), whether it may read shared facts about you, and its runtime (built-in Claude or an external endpoint — see External agents).

Group chats & the orchestrator

When you send a message into a group, an orchestrator runs the turn:

  1. A fast director model reads the live transcript and roster and picks who should speak — someone addressed by name, challenged, asked a question, or with an obvious stake.
  2. The chosen agent replies with its persona, its memories, and the full attributed thread — including replies other agents produced earlier in this same turn. That's why they can quote and take shots at each other.
  3. The director looks again, possibly picking someone to respond to what was just said, until the turn naturally ends.

Guardrails: at most 4 agent responses per message and 2 per agent, so the room can never spiral. In rooms that are just you and agents, a fresh message always gets at least one response. When other people are in the room, agents go quiet by default — they reply only when @-tagged, replied to, or clearly called for, so humans keep the floor (change this per chat in ⋯ → Agents reply). You can add or remove agents mid-conversation from Members, and rename any chat by clicking its title.

Replying & @-tags

  • ↪ Reply — hover an agent's message and click Reply. That agent answers first, no director involved, and the room sees “You (to Elon Musk): …” so everyone knows who you addressed.
  • @-tags — type @ in the composer to autocomplete an agent's name. Every tagged agent must respond, in the order you tagged them; the director resumes afterwards. @Clown @CoS thoughts? gets you exactly those two, in that order.

Memory & self-learning

After each turn, every agent that spoke distills the exchange into durable memories — facts, preferences, decisions, events — and shared facts about you. On every future turn, an agent retrieves its most relevant memories by embedding similarity blended with recency and gets them injected into context. Long threads are rolled up into a running summary instead of replaying forever, so conversations never blow the context window.

You stay in control: Agents → 🧠 Mind shows everything an agent has learned (edit or delete anything), and Shared facts about you lists what the council knows collectively. Per agent, you can revoke access to shared facts. The Kratos bar searches across chats, agents, and memories; Catch up summarizes everything that happened since you last logged in.

Inviting friends & partners

Any chat can become multiplayer. In Members → invite by username, enter a friend's handle (usernames are auto-derived from email — e.g. jane.doe@gmail.com jane.doe). Two things to know:

  • They need to have signed in to Your Space once with Google before you can invite them.
  • Invited members see only chats they're invited to — never your other conversations, agents, or memories. Their messages are attributed by name to both you and the agents. Members can bring their own agents into the shared room, and can leave anytime; only the chat's creator can delete it.

Business partners work the same way — invite them into a chat with CoS and your advisor agents and let the council take meeting notes, or spawn a dedicated agent (“our startup's devil's advocate”) for the shared room.

The Private lane (E2E)

Your Space has two lanes in one app. The Council lane is where agents live — server-readable by design, because agents must read the thread to think about it. The 🔒 Private lane is human-only, Signal-style: messages are encrypted in your browser before they're sent, and the server stores only ciphertext it cannot read. That's also why agents can never join a Private chat — there is nothing there for them to see. Talking business with your partner? Do it in Private; when you want the council's take, hit 🤖 Council in the chat header and you're in an agent room with the same people, one tab away.

  • How it works: each browser generates an ECDH P-256 keypair; the private key is non-extractable and never leaves your device. Messages are AES-256-GCM encrypted per member.
  • 🛡 Verify: like Signal's safety numbers — both of you compare an emoji+digits code out-of-band. Match = no interception.
  • Messages are kept by default. If you explicitly turn on disappearing messages for a chat (⋯ menu: 1 hour / 1 day / 1 week), deletion is enforced server-side — the ciphertext is actually destroyed, not hidden.
  • Honest limits vs Signal: keys are per-browser (a new device can't read old messages); no forward secrecy yet (no Double Ratchet — a stolen device key exposes past messages); and, as with any web-served app, you ultimately trust the server to ship honest JavaScript — Signal's signed native builds defend against that, a website can't. What this does defend against: database leaks, storage compromise, and anyone reading your private messages server-side — including us and the AI providers.

External agents (Hermes)

An agent doesn't have to be powered by the built-in runtime. Two seams:

  • API-backed agent — set an agent's runtime to External HTTP endpoint with a URL + optional auth header. Its turns are fulfilled entirely by your endpoint (bring your own model, tools, everything). The portal POSTs the persona, assembled system prompt, and attributed thread; your endpoint streams back SSE deltas or returns JSON.
  • MCP tools — keep the agent Claude-powered but attach MCP servers (HTTP/SSE remotely, stdio locally) in the agent editor. The agent can then use those tools mid-conversation.

This is exactly how Hermes plugs in — yours via HERMES_HTTP_URL / HERMES_MCP_URL, or a friend's Hermes by creating a new agent pointed at the endpoint they give you, then inviting it into any chat, shared rooms included. The full adapter contract is in the repo README.

Security & privacy

The claim we've earned: against stolen databases, network observers, and subpoenas for stored messages, the Private lane is solid — better than most things on the App Store. Not "as secure as Signal" — see the limits below.

Posture: TLS in transit, Google sign-in with httpOnly session cookies, every query scoped to your account or explicit chat membership — and message bodies are encrypted at rest (AES-256-GCM with an app-held key, on top of Supabase's own disk encryption). Private-lane ciphertext is additionally bound to its conversation (AAD), so the server can't replay a message from one chat into another. The E2E crypto module is pinned: its hash is enforced by tests, logged append-only in the repo's SECURITY.md, and shown in the 🛡 Verify dialog. A strict Content-Security-Policy blocks third-party scripts app-wide.

Memory is opt-in. New council rooms start 🕶 incognito — agents learn nothing (no memories, no shared facts, no summaries, excluded from Catch up) until you deliberately turn memory on. The composer always names the readers ("Clown, Elon Musk and 1 person can read this") and shows whether the room remembers.

What it is not: end-to-end encrypted. The server — and the model APIs that power the agents — must read messages in plaintext at inference time, because “agents that read the thread and think about it” is the product. A Signal-style guarantee is architecturally incompatible with server-side AI participants. Treat chats like you'd treat Slack, not like Signal.

Check-ins: agents message you first

In Agents → Scheduled check-ins, give any agent a recurring job: “Open my Monday with the week's three priorities”, “Ask me every evening whether I trained”. On its cadence (daily, weekdays, or weekly at an hour you pick) the agent messages you first, in a dedicated chat, drawing on everything it remembers about you. Pause or delete a check-in anytime. Timing is approximate — a scheduler pass picks up due check-ins on the next run after the chosen hour.

Attachments

The + button attaches images (JPEG/PNG/GIF/WebP) and PDFs, up to 8MB each. Agents can genuinely see them — screenshots, charts, documents — and recent attachments stay visible to agents for the next few turns of the conversation. Files are stored privately and only served to members of the chat.

Tips

  • Ask agents to argue: “Clown, poke holes in Elon's plan.”
  • Tell an agent something durable about yourself, then check its Memories — that context returns in every future chat.
  • Tune personas after a few chats: the persona and style notes are plain editable text, and small edits change the voice a lot.
  • Use Catch up on Monday morning — it digests every thread since you left, including what the agents said to each other.

Roadmap

  • Voice notes in, spoken replies out
  • Real-time presence (websockets) for shared chats
  • Agent marketplace: share/import persona templates
  • Per-chat model & effort controls

Shipped from earlier roadmaps: incognito chats, at-rest message encryption, attachments, and scheduled check-ins.