# Struere > AI agent platform with a built-in data layer, dynamic system prompts, event-driven automation, and integrations. Define agents as TypeScript code, talk to them via HTTP API. ## How to read these docs This is the documentation index. Each URL below returns plain-text markdown. Fetch any URL directly to read that page. URLs are exact — do not modify them. - To read all docs in one file: https://docs.struere.dev/llms-full.txt - To read a topic: fetch a section file below - To read a specific page: fetch its URL from the page list below - OpenAPI spec: https://docs.struere.dev/openapi.yaml ## Section files https://docs.struere.dev/llms-api.txt — Chat API, HTTP endpoints, webhooks https://docs.struere.dev/llms-sdk.txt — Agent, data type, role, automation definitions https://docs.struere.dev/llms-tools.txt — Built-in tools, custom tools, system prompt templates https://docs.struere.dev/llms-platform.txt — Data, agents, automations, events, permissions, evals https://docs.struere.dev/llms-integrations.txt — WhatsApp, Google Calendar, Flow payments, Airtable https://docs.struere.dev/llms-cli.txt — CLI reference https://docs.struere.dev/skill — Developer skill: behavioral rules, gotchas, decision frameworks ## All pages Section headers below are labels only — they are NOT part of the URL path. ### Getting Started https://docs.struere.dev/introduction.md — Introduction: What is Struere and why use it https://docs.struere.dev/getting-started.md — Getting Started: Install Struere and create your first agent https://docs.struere.dev/why-struere.md — Why Struere: When to use Struere and how it compares to building agents from scratch ### API Reference https://docs.struere.dev/api/overview.md — API Overview: HTTP endpoints for interacting with Struere https://docs.struere.dev/api/chat.md — Chat API: Send messages to agents via HTTP https://docs.struere.dev/api/data.md — Data API: CRUD operations for entities via HTTP https://docs.struere.dev/api/webhooks.md — Webhooks: Inbound webhook endpoints for external integrations ### SDK https://docs.struere.dev/sdk/overview.md — SDK Overview: TypeScript SDK for defining agents, data, roles, and automations https://docs.struere.dev/sdk/define-data.md — defineData: Define data type schemas for your domain https://docs.struere.dev/sdk/define-role.md — defineRole: Create roles with policies, scope rules, and field masks https://docs.struere.dev/sdk/define-agent.md — defineAgent: Create and configure AI agent definitions https://docs.struere.dev/sdk/define-trigger.md — defineTrigger: Define event-driven automation rules https://docs.struere.dev/sdk/define-tools.md — defineTools: Create custom tool handlers for agents ### Tools https://docs.struere.dev/tools/built-in-tools.md — Built-in Tools: Pre-built tools available to all agents https://docs.struere.dev/tools/custom-tools.md — Custom Tools: Build custom tool handlers executed on the tool executor service https://docs.struere.dev/tools/system-prompt-templates.md — System Prompt Templates: Dynamic variables and embedded queries in system prompts ### Platform Concepts https://docs.struere.dev/platform/data.md — Data: Domain data with permission-aware CRUD operations https://docs.struere.dev/platform/agents.md — Agents: AI agent configuration and execution https://docs.struere.dev/platform/triggers.md — Automations: Automated workflows triggered by data changes https://docs.struere.dev/platform/events.md — Events: Audit logging and event-driven architecture https://docs.struere.dev/platform/permissions.md — Permissions: Role-based access control with row and column security https://docs.struere.dev/platform/environment-isolation.md — Environment Isolation: Development, production, and eval data separation https://docs.struere.dev/platform/evals.md — Evaluations: Test agent behavior with automated assertions and LLM-as-judge scoring https://docs.struere.dev/platform/studio.md — Studio: Browser-based AI coding environment with multi-provider model selection and custom API key support https://docs.struere.dev/platform/dashboard.md — Dashboard: Navigate and use the Struere dashboard to manage your agents and data https://docs.struere.dev/platform/billing.md — Billing and Credits: How credit-based billing works, pricing, and managing costs https://docs.struere.dev/platform/users.md — User Management: Managing users, roles, and organization membership ### Integrations https://docs.struere.dev/integrations/whatsapp.md — WhatsApp Integration: WhatsApp messaging integration via Kapso https://docs.struere.dev/integrations/flow-payments.md — Flow Payments: Payment processing with Flow.cl integration https://docs.struere.dev/integrations/google-calendar.md — Google Calendar: Connect Google Calendar for scheduling, availability checks, and event management https://docs.struere.dev/integrations/embeddable-widget.md — Embeddable Chat Widget: Add a Struere AI chatbot to any website with a single script tag https://docs.struere.dev/integrations/airtable.md — Airtable: Read and write Airtable records from your agents https://docs.struere.dev/integrations/resend.md — Resend: Send transactional emails from your agents via Resend ### CLI https://docs.struere.dev/cli/overview.md — CLI Overview: Command-line interface for managing Struere agents https://docs.struere.dev/cli/init.md — struere init: Initialize an organization-centric project https://docs.struere.dev/cli/dev.md — struere dev: Watch files and sync to Convex on change https://docs.struere.dev/cli/org.md — struere org: Create and manage organizations from the CLI https://docs.struere.dev/cli/add.md — struere add: Scaffold new agents, data types, roles, and automations https://docs.struere.dev/cli/status.md — struere status: Compare local vs remote state https://docs.struere.dev/cli/pull.md — struere pull: Pull remote resources to local files https://docs.struere.dev/cli/deploy.md — struere deploy: Deploy all agents to production https://docs.struere.dev/cli/chat.md — struere chat: Chat with an agent directly from the terminal https://docs.struere.dev/cli/eval.md — struere eval run: Run eval suites from the command line and generate Markdown result reports https://docs.struere.dev/cli/templates.md — struere templates: Manage WhatsApp message templates from the command line https://docs.struere.dev/cli/integration.md — struere integration: Configure and manage integrations from the command line https://docs.struere.dev/cli/compile-prompt.md — struere compile-prompt: Compile and preview an agent's system prompt after template processing https://docs.struere.dev/cli/run-tool.md — struere run-tool: Run a tool as it would execute during a real agent conversation ### Knowledge Base https://docs.struere.dev/knowledge-base/how-to-set-up-rbac.md — How do I set up RBAC for my agents?: Define roles with policies, scope rules, and field masks to control what agents and users can access https://docs.struere.dev/knowledge-base/how-to-debug-permission-denied.md — How do I debug permission denied errors?: Diagnose and fix access control issues when agents or users are blocked by the permission engine https://docs.struere.dev/knowledge-base/how-to-connect-whatsapp.md — How do I connect WhatsApp to my agent?: Set up WhatsApp messaging through Kapso so your agent can receive and respond to messages https://docs.struere.dev/knowledge-base/how-to-use-multiple-agents.md — How do I use multiple agents together?: Set up multi-agent communication with agent.chat for delegation and specialization https://docs.struere.dev/knowledge-base/how-to-test-with-evals.md — How do I test my agents with evals?: Write eval suites in YAML to test agent behavior with automated assertions and LLM-as-judge scoring https://docs.struere.dev/knowledge-base/how-to-handle-tool-errors.md — How do I handle tool call errors?: Understand how tool errors are surfaced to agents and how to design agents that recover gracefully https://docs.struere.dev/knowledge-base/best-practices.md — Best Practices for Building Agents: Production-learned patterns for tool design, prompt engineering, safety, and debugging https://docs.struere.dev/knowledge-base/how-to-use-template-variables.md — How do I use template variables in system prompts?: Inject dynamic data into agent system prompts with template variables and embedded queries https://docs.struere.dev/knowledge-base/how-to-manage-environments.md — How do I manage dev vs production environments?: Understand environment isolation and the workflow for promoting changes from development to production https://docs.struere.dev/knowledge-base/how-to-add-chatbot-to-website.md — How do I add a Struere chatbot to my website?: Embed a live AI chatbot on any webpage using the floating widget or a direct iframe ### Reference https://docs.struere.dev/reference/model-configuration.md — Model Configuration: Available AI model providers and pricing https://docs.struere.dev/reference/project-structure.md — Project Structure: Organization-centric project layout and configuration https://docs.struere.dev/reference/limits.md — Limits and Quotas: Platform limits for agents, API requests, data, and integrations https://docs.struere.dev/reference/error-codes.md — Error Codes: HTTP error codes and error response formats across all endpoints https://docs.struere.dev/reference/coding-agent-guide.md — Coding Agent Guide: How to feed Struere docs to coding agents like Claude Code, Cursor, and Copilot https://docs.struere.dev/reference/error-handling.md — Error Handling: How errors propagate through the platform and how to handle them https://docs.struere.dev/reference/rate-limiting.md — Rate Limiting: API rate limits, credit-based throttling, and managing usage ## Quick reference - Chat endpoint: `POST /v1/agents/:slug/chat` with Bearer token - SDK exports: `defineAgent`, `defineTools`, `defineData`, `defineRole`, `defineTrigger` - Default model: `openai/gpt-5-mini` - Environments: `development`, `production`, `eval` - Auth: API keys prefixed `sk_dev_` / `sk_prod_` - Package manager: Bun