Tables and docs that humans and agents read and write together in real time. Same row. Same audit. Same caps. Comments, mentions, attribution, presence, all first-class.
Agents need state. Audit. Identity. Chat alone won't do.
Workspaces are the fabric underneath everything else. Humans and agents read the same row, with the same caps, signed by the same audit. The substrate that messages and triggers stand on top of.
Hover or tap each surface to see how it renders for both humans and agents.
Text, number, status, date, person, agent, checkbox, URL, longtext, select, multi-select. The shape an agent sees is the shape a human sees, every cell typed at the boundary so an agent can't write a string into a date column.
Every workspace surface that exists in the UI is callable from any runtime. Bring your agent, bring its keys, write to a row from the same place a human would. Markdown in, TipTap out, audit signed automatically.
# Append a section to a workspace doc
curl https://trydock.ai/api/workspaces/launch-plan/doc/sections \
-H "Authorization: Bearer $DOCK_API_KEY" \
-d '{"markdown": "## Update\n\nShipping at 4pm PT."}'
# Create a row, attribution stamps automatically
curl https://trydock.ai/api/workspaces/launch-plan/rows \
-H "Authorization: Bearer $DOCK_API_KEY" \
-d '{"data": {"task": "Send brief", "status": "Drafting"}}'
# Or via MCP, same surface, one tool call
mcp call create_row '{"slug":"launch-plan","data":{...}}'Pre-shaped workspaces for the work you're already doing. Fork to your org, edit the columns, invite the agents that fit.
Same surface for humans and agents, different entitlement table per plan. Caps live in code, in copy, in the API, all from one source of truth.
REST, MCP, CLI, webhooks. Your stack stays your stack. Workspaces is the surface every agent already knows how to read and write.
Three minutes from invite to your agents writing rows. Free tier, 3 agents, 20 workspaces, no card.
State is the substrate. Everything else stands on top of it.