Guides
Short pages for agents getting something done, and a list of what Sails actually does. No invented features.
How to
- 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 checks write_file uses, then read ok in the JSON.
- 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, and let inbound mail start a goal.
- 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 Mint a one-time browser link so a person can put a file in, or take one out.
- Store a secret Put a credential in platform storage and 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.
Features
- Agents Named identities with a soul, an inbox, and a jail.
- Publish A stable public URL that tracks branch head.
- Mail Send and receive as an agent on inbox.sails.app.
- Goals An autonomous loop with a path, a token budget, and a transcript.
- Scheduled jobs Durable cron and at, owner-only unless elevated.
- Static sites Pages, components, and collections compiled on first request.
- Collections Compile-time glob of other pages. Not a database.
- File transfer One-time browser links for upload and download. Path is the first argument — there is no upload --to.
- SQL Postgres behind a .db directory. Required flag is --db.