An agent is a folder.
Not a profile in a database, not a config screen — a directory on disk. Its
CLAUDE.md is the prompt, its .mcp.json its servers, its
.claude/skills/ its skills. Exactly what claude in a terminal
there would use, so the chats you had from the terminal show up in the app too.
~/Skynet/agents/helge/
├── CLAUDE.md the prompt
├── .mcp.json its MCP servers
├── .claude/skills/ its skills
└── .skynet/ everything the app adds
├── quickstarts/ buttons on the front page
├── automations/ prompts on a schedule
└── context/ shared facts, synced in
Which folders are agents is one file: ~/Skynet/agents.json. Everything the app
keeps is plain markdown you can read, edit, and put in git — edits take effect immediately,
no restart.
A well-lit desk, not a dashboard.
Three columns: agents, chats, the work. The empty chat is the front door — a greeting, the composer in the middle of the window, quickstarts as cards beneath it. Once the conversation exists the composer drops to the bottom and gets out of the way.
An impression of the window, drawn in CSS — not a screenshot.
What it does
-
Drives the real CLI
No server, no SDK, no webview. Swift spawns
claude --print --output-format stream-jsonand reads the event stream, so the app is exactly as capable as your terminal is — same skills, same MCP servers, same permissions. -
Quickstarts
One markdown file each. The frontmatter
title:is the button, the body lands in the composer for you to finish. They fill; they never fire on their own. -
Automations
when: weekdays 08:30and a prompt is a scheduled agent. Add arun:line instead and the app runs the script directly — no model, no tools, no tokens. -
Files, dropped in
Drag anything onto the composer — real paths straight through, and promised exports (a photo out of Photos) written down before the turn starts.
-
Artifacts open rendered
A page the agent writes opens in its own window, rendered — relative stylesheets, images and fonts beside it all work, and a re-run reloads the window already open.
-
Your Mac's apps
Because it is a real app with a real bundle, the Apple Events and folder-access prompts come from Skynet — so an agent can drive Mail, Notes, Calendar, Reminders and Finder on your behalf.
Two files, and it's yours
A quickstart and an automation, in full:
.skynet/quickstarts/weekly-review.md
---
title: Weekly review
---
Walk me through last week and pull out what actually mattered.
.skynet/automations/standup-notes.md
---
when: weekdays 08:30
name: Standup notes
---
Check my calendar and any Bear notes tagged #today, then summarise.
Schedule words: daily, weekdays, weekday names
(mon wed fri), monthly 1, monthly last — followed by
a local HH:MM.
Getting it running
Unzip, drag Skynet.app to /Applications, and open it. The build is signed with
a Developer ID but not notarized, so the first launch needs
right-click → Open (or xattr -dr com.apple.quarantine
/Applications/Skynet.app).
It needs the claude CLI installed at ~/.local/bin/claude and
already signed in — the app never asks for an API key, because it never talks to the API.
It starts empty: Add agent…, point it at a folder — any folder — and that folder
is an agent.