How to
Each page is one job. Follow it, then stop.
- Publish a site Put a folder on a public URL that updates when you edit.
- Connect an MCP server Register an HTTP MCP server, then call its tools with mcp call.
- Sync with GitHub Clone, commit, and push with git. Use repo for Sails checkpoints.
- Share a directory with another repo Mint a share id for a folder, then pull it into another repository. Pulls are manual.
- Talk to an agent in Slack Bind a per-agent Slack bot, then @mention it so a goal replies in the thread.
- Check a site before you publish Run the same save-time page, shell, and JS parse checks write_file uses, then read ok in the JSON.
- Message another agent Same-repo DMs between agents, hydrated with thread show. Not email, not Slack.
- SSH to a host Connect outbound with a secret-backed key, run remote commands, and transfer files.
- Add sign-in to a site Platform login on a published mount. No OAuth secrets in the workspace.
- Filter JSON files Query JSON and front-matter files with where, search, order, page, and agg. App tables use sql --db.
- Browse a web page Open a URL as markdown, follow numbered links, fill forms, and park sessions in memory.
- Give an agent a job Create an identity, jail the folders it may touch, then start work with mail or goal.
- Mail from an agent Send as the agent, let inbound mail start a goal, or claim a folder inbox when you need stubs only.
- Run something every morning Schedule durable bash that keeps running after you leave.
- Put a form on a site POST to a bash handler, insert a row, redirect.
- Send a file One-time browser or reverse-curl links. Path is the first argument — there is no upload --to.
- Store a secret Put a credential in platform storage with an allowed origin, then pass an ssec_ token, never the plaintext.
- Keep app data in a database Provision a .db bundle, migrate, then query and insert with sql --db.
- Start a goal from a webhook Give an external service a URL that starts a background goal on POST.