Most “AI at work” is still chat with a costume. Excellent for reading. Weak at doing. They do not own your board. They do not wait for a person before a destructive write. They do not version the teammate the way you version a playbook.
| Topic | ||||
|---|---|---|---|---|
| What it is | A persistent crew | Shared chat | Tenant agent | No-code worker |
| Where work lands | Tides agent-inbox | The thread | M365 | The automation |
| Writes | Can stop for a human | You copy-paste | Depends on the connector | The scenario fires |
| Skills | Versioned SKILL.md, loaded on purpose | Custom GPTs | Plugins in the tenant | Templates |
| Tools | MCP wrappers + gated writes | You paste the output | Graph connectors | Prebuilt actions |
| Budgets | Steps, spend cap, wall clock, salvage turn | A usage meter | Tenant quota | Run limits |
| Where it sits | Sidebar in the product you are in | Another tab | Office, or a pane | The Lindy app |
| Composio | Search tools, then execute. Writes wait. | A GPT action, maybe | Graph connectors | The scenario’s apps |

Pick Shelly if
The model has to operate on real workspace work, with memory and an approval, not paste an answer into Slack.

Pick ChatGPT if
You want an answer in thirty seconds. Open the tab.

Pick Copilot if
Every document is already in SharePoint. Copilot Studio is the path of least resistance.

Pick Lindy if
You want “watch the inbox, update the CRM” this afternoon, with templates, not doctrine.
A crew is not a prompt you re-paste. It has a body, skills you attach on purpose, tools it is allowed to call, memory it can retrieve. Runs can start from Tides, a clock, or a webhook. When a write is dangerous, it becomes a gate, not a surprise.
What “governed” means in the product
- Crews (snails) are workspace-scoped: species, shell colour, instructions, versioned AgentVersion bodies.
- Skills are SKILL.md playbooks. The catalogue is a name and a description. The full body loads only via load_skill.
- MCP mounts as three wrappers: search_tools, inspect_tool, call_tool. Unannotated vendor tools gate as writes.
- Every parked write is a Gate audit row. Approve from the queue, the API, or a Mattermost card. Clocks expire due gates every five minutes.
- Deployments are cron or a webhook token. A run pins the live AgentVersion. Budgets: step cap, crude USD cap, wall clock. Over budget gets a tool-less salvage turn.
- Memory is workspace envelopes with pgvector ANN and keyword fallback. Credentials are Fernet refs, masked in API responses, gated per run.
- Intake is Tides agent-inbox. The snail does not invent a second board. Reflection after a run proposes memory and definition patches a human applies or rejects.
The sidebar is the integration you actually click
Shelly is not only the Hub at :3004. It opens as a panel in the product you are already in. TurtleTime’s shell is the clearest version: SuiteAiPanel, page_context with the app and the path, presets that change if a calendar connection is live. Ask “is my timer still running?” without leaving the tracker. Confirm or cancel a write without opening a second login. If the answer lives in Tides or Kraken, the panel can launch that app.
- page_context: { app, path }. The snail knows you are on /tracker, not in a vacuum.
- /api/ai/chat queues a job. The panel polls. Destructive steps come back as actions you confirm or cancel.
- First-party tools: Tides cards (get, search, create), TurtleTime timer and entries, Kraken search/read/write — each gated by can_access_* on the membership.
- Admin-only tools stay admin-only: member access, purge archived documents.
How Composio shows up for a snail
A Composio connection is user-owned, workspace-linked, and categorised (calendar, email, code, chat, other). Organisation policy can forbid a category. The snail does not get a dump of every vendor action. It searches, then it executes.
- search_connected_integrations(query) — looks up tools on the connections this user (or a shared chat attachment) may use.
- execute_connected_integration(connection_id, tool_slug, arguments) — reads run now. Anything that changes external data waits for confirmation, same as a Gate.
- Shared sessions may use SHARED connections explicitly attached to the chat. Private connections stay owner-only.
- The same connection can also fire workspace rules (GitHub assigned → Tides task) and feed Kraken Deep Search as a citation source. One OAuth. Three products. Tokens never leave the API process.
If it cannot be approved, versioned and pointed at a task, it is a demo.
Use Shelly when the AI has to join the organisation: same workspace, same permissions, a person who can say no.



