Skip to main content
Journal
Shelly9 min read

ChatGPT is a tab. A teammate has a job.

ChatGPT Team is a shared conversation. Copilot Studio is Microsoft’s tenant agent. Lindy is no-code chores. Shelly is a crew with tools, memory, and a human gate.

Painted Shelly operations HUD with the snail icon larger than ChatGPT and Copilot

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.

Shelly compared with ChatGPT, Copilot, Lindy
Topic
Shelly
ChatGPT
Copilot
Lindy
What it isA persistent crewShared chatTenant agentNo-code worker
Where work landsTides agent-inboxThe threadM365The automation
WritesCan stop for a humanYou copy-pasteDepends on the connectorThe scenario fires
SkillsVersioned SKILL.md, loaded on purposeCustom GPTsPlugins in the tenantTemplates
ToolsMCP wrappers + gated writesYou paste the outputGraph connectorsPrebuilt actions
BudgetsSteps, spend cap, wall clock, salvage turnA usage meterTenant quotaRun limits
Where it sitsSidebar in the product you are inAnother tabOffice, or a paneThe Lindy app
ComposioSearch tools, then execute. Writes wait.A GPT action, maybeGraph connectorsThe 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.

Keep reading

Painted constellation of Tides, TurtleTime, Kraken and Shelly panels around the ShellStack hex-and-terminal icon
Suite

ClickUp is one app. We did not want one app.

ClickUp jams every job into one window. Notion jams every job into a page tree. Jira jams every job into an issue tracker. We built five apps and one organisation.

  • ClickUp
  • Jira
  • Notion

Read