# Controller AI Documentation > Controller AI is a platform for AI agents and no-code automations, operated by AI assistants through MCP, skills, the cai CLI, or a plugin; start at /for-ai-agents/. Every page below is also fetchable as raw markdown by appending .md to its path (e.g. https://docs.getcontroller.ai/start/connect.md). Every page except the two generated catalogs (reference/cli and reference/mcp-tools, each available as its own .md page) in one file: https://docs.getcontroller.ai/llms-full.txt ## Docs - [Meet Controller AI](https://docs.getcontroller.ai/): What can I build with Controller AI, and how does it become usable? - [Choose Your Setup](https://docs.getcontroller.ai/start/connect/): How do I start building in the app or connect the assistant I already use? - [Your First Agent](https://docs.getcontroller.ai/start/first-agent/): How do I create a support agent and prove its first useful answer? - [Your First Workflow](https://docs.getcontroller.ai/start/first-workflow/): How do I build a flow that accepts an invoice and returns a checked result? - [Write Agent Instructions](https://docs.getcontroller.ai/guides/agent-instructions/): How do I tell an agent what to do and when to ask for help? - [Add Agent Tools](https://docs.getcontroller.ai/guides/agent-tools/): How do I give an agent a capability with the right approval policy? - [Manage Agent Files](https://docs.getcontroller.ai/guides/agent-files/): Which file space should hold the material my agent needs? - [Test Your Agent](https://docs.getcontroller.ai/guides/test-agent/): How do I verify an agent's answers, tools and approvals before sharing it? - [Publish and Share Agents](https://docs.getcontroller.ai/guides/publish-agent/): How do I make an agent available to the people who should use it? - [Chat in Slack](https://docs.getcontroller.ai/guides/agent-slack/): How do I make a published agent usable in the intended Slack channels? - [Define Flow Contracts](https://docs.getcontroller.ai/guides/flow-contracts/): How do I define a reusable flow’s inputs and returned values? - [Configure Workflow Nodes](https://docs.getcontroller.ai/guides/workflow-nodes/): How do I configure an action, connect its inputs, and make its output usable? - [Write Workflow Expressions](https://docs.getcontroller.ai/guides/expressions/): How do I pass and transform the right values between workflow steps? - [Choose Execution Paths](https://docs.getcontroller.ai/guides/execution-paths/): How do I skip one step, choose one branch, or run several matching paths? - [Loop and Reuse Flows](https://docs.getcontroller.ai/guides/loops-and-subflows/): How do I call a reusable flow once or run it for every item in a list? - [Add AI Steps](https://docs.getcontroller.ai/guides/ai-steps/): How do I get a useful typed AI result that later steps can use? - [Store Workflow Data](https://docs.getcontroller.ai/guides/workflow-data/): How do I save and retrieve records that my flows and agents can use? - [Import and Copy Records](https://docs.getcontroller.ai/guides/import-records/): How do I import records into the right store without duplicating or overwriting the wrong data? - [Start with Triggers](https://docs.getcontroller.ai/guides/triggers/): How do I start a flow from a schedule, webhook, email, or app event? - [Test a Workflow](https://docs.getcontroller.ai/guides/test-workflow/): How do I prove a workflow works with representative inputs and a safe destination? - [Debug a Run](https://docs.getcontroller.ai/guides/debug-run/): How do I find and fix the first point where a workflow run did the wrong thing? - [Connect Your Apps](https://docs.getcontroller.ai/guides/connect-apps/): How do I authorize the correct app account and keep dependent tools working? - [Publish a Workflow](https://docs.getcontroller.ai/guides/publish-workflow/): How do I put a verified development workflow into live use? - [Restore Earlier Changes](https://docs.getcontroller.ai/guides/restore-workflow/): How do I recover an earlier workflow definition and decide whether to publish it? - [Check Resource Dependencies](https://docs.getcontroller.ai/guides/dependencies/): How do I find what a workflow change or deletion will affect? - [Read Account Activity](https://docs.getcontroller.ai/guides/account-activity/): Which account events can I inspect after an assistant or person changes something? - [Organize with Labels](https://docs.getcontroller.ai/guides/labels/): How do I group and find workflows and agents as my account grows? - [Manage Account Usage](https://docs.getcontroller.ai/guides/account-billing/): How do I manage membership, subscription, and the usage balance for my account? - [Objects and Relationships](https://docs.getcontroller.ai/concepts/object-model/): How do agents, actions, workflows, flows, nodes and records fit together? - [Development and Live](https://docs.getcontroller.ai/concepts/development-and-live/): Which definition, records, and files does each kind of run use? - [Types and Empty Values](https://docs.getcontroller.ai/concepts/type-system/): What type of value does a field need, and what does a missing value mean? - [How Flows Execute](https://docs.getcontroller.ai/concepts/execution-model/): How do wiring, branches, failures, and limits determine what runs and returns? - [How Usage Is Charged](https://docs.getcontroller.ai/concepts/cost-model/): What consumes Controller AI usage when I build, test, and run an automation? - [For AI Assistants](https://docs.getcontroller.ai/for-ai-agents/): Which setup or operating guide should an assistant read for a Controller AI task? - [Claude Code Setup](https://docs.getcontroller.ai/for-ai-agents/claude-code/): How do I connect Claude Code and verify it can operate the right Controller AI account? - [Claude App Setup](https://docs.getcontroller.ai/for-ai-agents/claude/): How do I connect Claude web, Desktop or Cowork to Controller AI? - [ChatGPT Setup](https://docs.getcontroller.ai/for-ai-agents/chatgpt/): How do I connect ChatGPT and verify the Controller AI tools are ready? - [Codex Setup](https://docs.getcontroller.ai/for-ai-agents/codex/): How do I connect Codex through the supported plugin or MCP setup and verify its account? - [Cursor and Other Hosts](https://docs.getcontroller.ai/for-ai-agents/other-clients/): How do I connect Cursor or another host that supports remote MCP, or use the CLI instead? - [Use the CLI](https://docs.getcontroller.ai/for-ai-agents/cli/): How do I run cai commands against the right account and workflow? - [Use Remote MCP](https://docs.getcontroller.ai/for-ai-agents/mcp/): How do I call the remote MCP server with the correct scope, workflow context, and result handling? - [Skills and Updates](https://docs.getcontroller.ai/for-ai-agents/skills/): How do I give an assistant current Controller AI guidance for its task? - [Assistant Access and Security](https://docs.getcontroller.ai/for-ai-agents/security/): What can a connected assistant do, and how do I limit or revoke its access? - [CLI Command Reference](https://docs.getcontroller.ai/reference/cli/): Which exact cai command, argument, flag, default and MCP counterpart should an assistant use? - [MCP Tool Reference](https://docs.getcontroller.ai/reference/mcp-tools/): What inputs, outputs, access requirements, and side effects does each Controller AI MCP tool expose? - [Expression Operations](https://docs.getcontroller.ai/reference/expression-operations/): Which operations can I apply to this type, and what do they return? - [Workflow API](https://docs.getcontroller.ai/reference/workflow-api/): What request and response contract should an external service use to run a flow? - [Product Glossary](https://docs.getcontroller.ai/reference/glossary/): What does a Controller AI term mean, and where is its full explanation? - [Web App Controls](https://docs.getcontroller.ai/reference/web-app/): Where do I find Controller AI's app controls and supported canvas shortcuts?