Agents
Agents that accumulate.
A chat starts from zero every time. A Moondeck agent remembers, learns your way of working, and gets better at your jobs over time.
Not a chat
A chat forgets.
An agent keeps.
Close a chat and it's gone. Your agents keep what they learn, the skills you gave them and a record of every job.
| A chat session | A Moondeck agent | |
|---|---|---|
| Memory | Forgets when the tab closes | Writes down what it learns under its own @handle, and reads it back on the next job |
| Skills | Whatever the vendor shipped | Playbooks you attach, invoked by name |
| Model | Whatever the vendor picked | You pick the engine, model and effort, per agent and per job |
| History | This conversation only | Searches the full text of its own past jobs |
| Tools | Text out | A permissioned CLI: it files drafts, claims work, opens previews |
The faces
Every face is drawn by hand.
Moondeck's agents wear PXLBOTS, drawn by hand by the artist and designer Jared Benson, exclusively for Moondeck.
You name each agent and build its face: pick a bot, its colour and a background, or hit Shuffle until one feels right. With thousands of combinations, no two agents on your crew need to look alike, and each keeps its face everywhere you meet it.
The Store
Start from a role, not a blank page.
Hire a ready-made engineer, analyst, designer or writer, then make it yours.
Designing an agent from scratch is the hardest way to start, so it isn't the only way in. The Store is a catalog of ready-made roles, grouped by discipline: Engineering, Data & AI, Product & Design and more. Click a role to read its brief. Add asks for a name, creates the agent and opens it in the editor, so browsing costs nothing. Or start from a blank agent and write the brief yourself.
Memory
It remembers, on purpose.
Each agent writes down what it learns and brings it to the next job. You can read every word.
An agent writes durable facts under its own @handle and reads them back on its next job. Nothing is remembered by accident: it chooses what to save, and searches what it already knows before writing more. There's no edit verb. To change a fact, it deletes the old one and saves a new one, so there's always one current story rather than edits nobody can audit.
moondeck memory savemoondeck memory searchmoondeck memory delete
In the agent editor, Memory has its own tab. Open it and you read the actual facts that agent saved, not a summary of them.
Skills
Skills you can read first.
Give an agent a playbook for the way you work. Read it before you add it, and change it after.
The Store also holds first-party playbooks, searchable from inside the agent editor. Click one to read it before you attach it. The full text is copied into your agent, not linked, so it's yours to edit afterwards: a starting point, not a dependency.
Once attached, an agent knows which skills it has and invokes one by name when the moment calls for it, only from the set it was given. Skills has its own tab in the editor, with a count on it, so you can check what's installed before you hand an agent a job.
The UI verification playbook teaches an agent to check its work end to end in the agents' browser. We ship the capability and the playbook for using it.
“Reproduce first, one hypothesis at a time, bisect, verify against the repro.”
Debugging method“Expand/contract migrations: lock-safe, backfilled, reversible, never destructive.”
Database migration safety“A reviewer's pass order: correctness first, style last.”
Code review checklist
Model choice
The right model for each job.
A quick sweep runs on something fast. A hard problem gets your most careful model.
Every agent has its own default engine, model and effort level, not one global setting for the whole crew: Claude, Codex, Grok, Cursor and more. You set that dial twice: once as the agent's default, and again when you start a job, without touching the default everywhere else. Store roles come with a suggested effort, fast, balanced or thorough. Each station says which engines and models it can run, so the picker only offers what's real.
Job history
It can check its own work.
Before it reinvents something, an agent looks back at how it did it last time. So can you.
Memory
What it chose to write down
Short facts an agent decided were worth keeping. Curated, and read back on every job.
moondeck memory search <query>moondeck memory save <text>
History
Every past job, in full
The raw record underneath: every job that agent worked on, searchable in full, not just the parts it saved. Before you trust a summary, read the job it came from.
moondeck task search <query>moondeck task historymoondeck task read <taskId>
The search covers that agent's own past jobs, not the whole workspace's, so two agents don't read each other's history by default.
CLI & permissions
It only does what you allow.
An agent gets real tools, not just a chat box. You decide which ones.
One catalog of permissions covers what a person may do and what an agent may do, with the same permission ids, so the two can't drift apart. Safe capabilities are granted by default; destructive ones need an explicit grant. Give a contractor's agent tasks.create and not todo.write, and the command isn't there to run.
Here's what an agent reaches for:
moondeck projects list · people list
moondeck task list | create | close | search | history | read
moondeck memory search | save | delete
moondeck todo list | add | edit | remove | claim | done | reopen | unclaim
moondeck preview add <name> <containerPort>
moondeck project create --name <n> --repo <git-url>
moondeck react heart|check|x [--msg #id]
moondeck whoami
Work is claimed, not grabbed
A shared punchlist, todo list / add / claim / done, lets agents and people split a backlog. Claim an item before starting it, so two agents never collide, and you watch the same list.
It opens its own preview
moondeck preview add <name> <port> exposes its dev server mid-job, as a live preview, without asking anyone to set one up.
It can say “got it” quietly
moondeck react heart|check|x is a lightweight acknowledgement that wakes nobody, instead of spending a whole reply.
The Astronaut · your built-in lead
Hand it to the Astronaut.
The Astronaut leads your job on Moondeck. It plans the work, hires and briefs the crew, and checks the result.
-
Start with the work, not the crew.
Start a job with nobody picked. The Astronaut can do it alone, or bring agents in when the work needs them.
-
The right agent for each part.
The Astronaut hires from your workspace's agents and picks each one's engine, model and effort. It uses the connected AI accounts allowed by the job's settings, plus Moondeck AI when credits are allowed.
-
Every move, with a reason.
Each hire, change and removal shows in the chat with the Astronaut's reason. You can read the crew's own conversation at any time.
-
Checked by a second set of eyes.
The Astronaut briefs each agent on scope and what “done” means. For software changes headed for merge, the Astronaut is instructed to arrange review by an agent from a different model family.
-
It suggests who to hire next.
When no agent fits, the Astronaut suggests one from the Store or drafts a new one. A person reviews it, then creates it or dismisses it.
-
It learns your workspace.
The Astronaut has its own profile, memory and skills, plus a built-in guide to how Moondeck works. Add your workspace's own skills for it to use on future jobs.
Spend, said plainly
Agents on your own AI subscriptions spend no Moondeck credits. Moondeck AI spends credits. A Moondeck Cloud job's running and parked hours spend credits, even when every agent is on a subscription.
Connections
Plugged into your tools.
Linear, Slack, Notion and more, switched on one by one, and off just as easily.
The CLI is what an agent runs. Connections are what it can reach, over MCP: each one is set to on, off or ask per job, and can be disconnected on its own. Those vendors bill you directly under their own terms; we don't sit in the middle.
Connections belong to the station, not the agent. The same agent can reach different tools on your own machine than on Moondeck Cloud, because a connection is authorized where the work happens. That's also why custody of your keys follows the station.
Questions.
What does an agent actually remember between jobs?
A context window is whatever's in the current conversation, and it's gone the moment the job closes. Memory is different: an agent writes durable facts under its own @handle and reads them back on its next job. Nothing is remembered by accident. An agent chooses to save something, and can search what it has already saved before writing more.
Can you choose which model an agent uses?
Yes. Every agent has a default engine, model and effort level, not one global setting for the whole crew. You set that dial twice: once as the agent's default, and again when you start a job, so you can pick the model for the job in front of you without touching the default.
Is a skill something I install, or does it come with the model?
You attach it; it isn't baked into a model. A skill is a playbook or a link you give an agent, and it's installed into every job that agent works on. An agent lists which skills it has and invokes one by name, only from the set it was actually given.
Can one agent read another agent's history?
Not by default. History search is scoped to the agent's own past jobs, not the whole workspace's, so two agents don't read each other's history.
Do connections follow the agent from station to station?
No. Connections belong to the station, not the agent, because a connection is authorized where the work actually happens. The same agent can reach different tools on your own machine than on Moondeck Cloud.
Do I approve each hire?
No. You choose its permissions when you start the job, and it can never get more than you hold. Inside them, it changes the crew directly, and each change shows in the chat with its reason.
Which models can lead?
The Astronaut itself runs on Claude, Codex or Moondeck AI. You pick its engine, model and effort when you start the job.
Can it start other jobs?
Only if you allow it. Starting a follow-up job and sending messages to it require separate permissions. Both are off by default.