Brainstead

For agencies running many client brands

A company brain for every client you run, isolated by construction.

Each client gets its own brain, with its own storage, its own encryption key and its own agent in Slack. The agent writes in the client's voice and puts every draft in a queue for a person to approve. Nothing it writes reaches anyone on its own.

Request a demo Become a design partner

Design-partner stage · Storage in AWS Frankfurt · Runs on your client's own Claude account

A grid of sealed glass cubes in the dark, each holding its own sphere of light particles; one cube glows amber
drafts/q3-launch-linkedin.mdsha256 3f9a1c0e8b72d4a1… Waiting for a person
One brain per client, each with its own storage and its own encryption key.

The problem

Twenty clients. One AI tool. And their brands all in the same pile.

  1. 01

    "Every time an account manager leaves, the client's voice leaves with them."

    The brand lives in people's heads, old briefs and a folder of PDFs nobody reads.

  2. 02

    "I paste the same brand guidelines into ChatGPT for every brief."

    And every account manager pastes a slightly different version.

  3. 03

    "I can't let an AI tool loose on client accounts."

    If it posts the wrong thing on a client's LinkedIn, that's someone else's brand you've damaged.

  4. 04

    "I need to prove Client A's material never fed Client B's content."

    Clients' security questionnaires ask where data lives and who can read it. For most AI tools, you can't answer.

How it works

From a client's name to an on-brand draft, in one sitting.

Your account managers work in Slack and the web console. Nobody needs a terminal.

  1. 01 · Name the client

    A new brain, with its own vault and key

    Type the company name. The brain's encryption key and private storage are created while you watch.

  2. 02 · Teach it the business

    Paste their website

    The brain reads up to 25 pages of the client's site and files them as knowledge, so the agent writes in their voice from day one. Add brand files and skills alongside.

  3. 03 · Ask in Slack

    Each brain gets its own Slack app

    Mention it in a channel and ask for a draft. A thread is one continuing conversation, and only the brain's owner can talk to it.

  4. 04 · A person decides

    Every draft lands in the queue

    Each draft is listed with a fingerprint (SHA-256) of its exact bytes. The agent has no way to post it anywhere.

# harbour-content Slack · example thread
Account manager

@brain-harbour /draft a LinkedIn post about our Q3 launch

brain-harbour APP

Drafted from the site and brand files. It's in the review queue: nothing goes out without your approval.

drafts/q3-launch-linkedin.md

Our Q3 release is live. [NEEDS-FACT: launch date] It gives teams…

## Notes for the reviewer

Voice sources: brand/, knowledge/website/. Claims deliberately not made: pricing, customer names.

Approval queuesha256 3f9a1c0e8b72d4a1… · exact bytes Waiting for a person

Enforcement after generation

We don't ask the model to behave. It never sees the key.

No model is immune to prompt injection. So instead of trusting what the agent writes, we limit what it can reach. Here are four things the system refuses to do, and how finished each one is.

A stream of amber light particles hits an invisible glass wall and scatters back; nothing reaches the dark side beyond it
D-1 · egressAn agent asks for an outside host. The proxy says no.
D-1 · EgressEnforced today

A jailbroken agent still can't phone home.

The agent's container can reach only the model API, through an allow-list proxy, and our tool proxy. Eight probes run on every deploy, and the deploy fails if one gets through.

Not yet: blocking and testing DNS exfiltration.

D-2 · SecretsPartly built

Your tool tokens never enter the model's context.

Tool and Slack tokens stay encrypted in the control plane. The agent holds only a 15-minute pass to the tool proxy, which adds the real token on the way out.

Not yet: catching a key someone pastes into a message.

D-3 · PublishingNext build

Nothing publishes without a signed approval of that exact draft.

Approving will mint a signed record bound to the draft's fingerprint. A missing approval, or a single changed byte, will be refused.

Today: the agent holds no channel credential, so the worst a prompt injection gets you is a draft nobody approved.

D-4 · IsolationEnforced by design

One client's credentials can't open another client's brain.

One bucket and one encryption key per brain, with access scoped to the client it belongs to. Credentials for one brain have no permission on another brain's bucket or key.

Also per brain: Slack app, agent container, tool connections and sessions.

Your tools, your model

Connect your tools. Read-only until you say so.

Each brain connects to the tools your team already uses, with each person's own sign-in. Every connection starts read-only, enforced at the proxy rather than in the prompt. Write access is a separate switch the brain's owner flips per tool, and every change is logged.

  • MFlow
  • Notion
  • Linear
  • ClickUp
  • Canva
  • Figma
  • Sentry

Runs on your client's own model account

Connect the client's Claude subscription or an Anthropic API key. The key is write-only: no screen or API ever shows it again.

Tools · harbourconsole · example
  • MFlowconnectedRead only
  • NotionconnectedRead only
  • ClickUpswitched by the owner · loggedFull access
  • SentryconnectedRead only

refused clickup.create_task · tier read · before switch

tier_changed clickup read → full · by owner

Shown, not promised

Run end to end on a real client brain.

All on a real agency client's brain, August 2026. Ask us and we'll walk you through it.

  1. Draft from Slack

    An on-brand post, straight into the queue

    A request in Slack produced a LinkedIn draft from the crawled site and brand files, with MFlow, ClickUp and Sentry connected.

  2. Read-only tools

    The agent couldn't see a write tool

    With the read-only tier on, the agent saw only read tools and reported that no create_task was available.

  3. The write switch

    Refused, allowed, refused again

    Refused at first. The owner switched ClickUp to full, a real task was created, then it was switched back. A deployment without the write licence returned 403.

  4. A real finding

    Two workspaces where one was meant

    Connecting ClickUp granted two workspaces. Pinning each connection to a single workspace is now on the build list.

Why not a chat tool?

A project per client separates clients by habit. A brain per client separates them in the infrastructure.

Question Chat tool, one project per client Brainstead
Where client material livesOne shared workspace, kept apart by folders and namingIts own storage bucket and its own encryption key
Who can post on the client's channelsWhatever you've connected it toNot the agent. It holds no channel credential and writes drafts only
Access to your toolsWhatever was granted when it was connectedRead-only by default; write is a per-tool switch, logged
The client's voicePasted into each briefKept in the brain: their site, brand files and skills
Unsupported claimsUp to the reviewer to spotMarked [NEEDS-FACT] in the draft, with notes for the reviewer

Security, honestly

What's enforced today, and what isn't yet.

We won't put a security property on this page that the product doesn't have. Use this list for your clients' questionnaires.

Enforced in code today

  • A storage bucket and encryption key per brain, created when you name the client
  • Agent containers with a read-only filesystem, no privileges and no web browsing
  • Network limited to the model API and the tool proxy, checked on every deploy
  • Tool and Slack tokens encrypted under the brain's own key, never shown to the agent or returned by any API
  • Tools read-only by default, enforced at the proxy
  • An audit log of every tool call, refusal, access change and deletion
  • Deleting a brain empties its storage and schedules its key for deletion

Not built yet

  • Signed, hash-bound approval before anything publishes
  • Catching secrets pasted into messages
  • Single sign-on, MFA, roles and teams. A brain has one owner today
  • Short-lived, per-request cloud credentials
  • A write-once, hash-chained audit store
  • EU-region model inference and customer-held keys (both open decisions)
  • A pentest, SOC 2, a DPA and a subprocessor list

Next builds, in order

  1. 1Signed approvals: approving a draft mints an authorization, and publishing requires one
  2. 2Two-way sync between a local brain folder and the hosted brain
  3. 3More connectors
  4. 4Short-lived, per-request cloud credentials
  5. 5Agency skills: repurpose, competitor brief, weekly report, meeting actions, client onboarding

Internal security review: 17 August 2026, fixes merged.

Pricing

Priced per client brain, not per seat.

Every client you win adds a brain. Talk to us about what that looks like for your agency.

Talk to us

Request a demo

See a client brain built in front of you.

We're working with a small group of agencies as design partners while we finish the approval gate. Tell us about yours.

  • A brain for one of your clients, from name to first draft
  • The four denials, shown live
  • Straight answers for your clients' security questionnaires
How many client brands do you run?
What are you after?

We'll only use your details to reply to this request.

Questions

Is it ready?

It has run a real client's brain end to end, in August 2026. It's at design-partner stage: the signed approval gate, single sign-on and short-lived cloud credentials are the next builds.

Where does our data live?

Storage, encryption keys and secrets are in AWS Frankfurt (eu-central-1). Model calls currently go to Anthropic's API; running inference in the EU is an open decision.

Can Client A's material leak into Client B's work?

Each brain is its own bucket and its own key, and one brain's credentials have no permission on another's. Sessions, tool connections, Slack apps and agent containers are per brain too.

What stops the AI posting something wrong on a client's account?

It has no credential to post with. What it writes is a draft in a queue. Once signed approvals ship, publishing will also require an approval bound to that exact draft.

Which AI model does it use?

Claude, on your client's own Claude subscription or Anthropic API key.

Can we take our data with us?

A brain is plain markdown files: knowledge, brand voice and skills. They're yours, in a format any tool can read.

What isn't it?

It isn't immune to prompt injection: it limits what an agent can reach and puts a person before anything goes out. It isn't a publishing or scheduling tool. And it isn't certified yet: no SOC 2, no pentest.