Documentation Index
Fetch the complete documentation index at: https://docs.archal.ai/llms.txt
Use this file to discover all available pages before exploring further.
What is a digital twin?
A digital twin is a stateful clone of a real service. It keeps track of objects, relationships, and constraints the same way the real service does.
Each twin:
- Implements the service-appropriate MCP and/or REST surface
- Runs an in-memory state engine with typed entity relationships
- Starts from a built-in seed or auto-generated state
- Exposes the service-appropriate hosted endpoints over HTTPS
- Runs on hosted infrastructure
Available twins
| Twin | What it covers | Details |
|---|
| GitHub | Repos, issues, PRs, branches, files, commits, actions, releases, code scanning | Hundreds of REST + MCP endpoints |
| Discord | Guilds, channels, messages, reactions, threads, webhooks, commands, interaction responses | REST-first bot workflows |
| Slack | Channels, messages, threads, reactions, users, files, admin, apps platform | Full Web API surface |
| Stripe | Customers, products, prices, payments, invoices, subscriptions, disputes, connect | Core billing and payments |
| Jira | Issues, projects, boards, sprints, fields, workflows, service desk, automation | Cloud REST API v3 |
| Linear | Issues, projects, teams, cycles, initiatives, roadmaps, labels, views | GraphQL API |
| Supabase | SQL queries, tables, migrations, extensions, edge functions, branches | PostgREST + Management API |
| Google Workspace | Gmail, Calendar, Drive, Sheets, Contacts | Google APIs |
| Ramp | Cards, funds, transactions, reimbursements, bills, approvals, travel | Ramp API |
| Telegram | Bot API — chats, messages, updates, inline queries | Bot API surface (MCP + REST) |
Need something else? Email us.
Compatibility matrix
Not every twin is exposed through every workflow. This is the canonical
reference — per-twin pages link back here.
| Twin | MCP | REST | Route mode (Vitest / --proxy) | State |
|---|
| GitHub | Yes | Yes | Yes | Stateful |
| Discord | Yes | Yes | Yes | Stateful |
| Slack | Yes | Yes | Yes | Stateful |
| Stripe | Yes | Yes | Yes | Stateful |
| Jira | Yes | Yes | Yes | Stateful |
| Linear | Yes | Yes | Yes | Stateful |
| Supabase | Yes | Yes | Yes | Stateful |
| Google Workspace | Yes | Yes | Yes | Stateful |
| Ramp | Yes | No | No | Stateful (MCP-only surface) |
| Telegram | Yes | Yes | No | Stateful |
“Route mode” means an existing agent can call real service domains (for
example api.github.com) and have the TLS proxy redirect traffic to the
twin with no code change. Ramp is MCP-only (no REST fidelity surface), and
Telegram has a route manifest gap today so it works via explicit base URL
injection only. All twins are stateful — there are no read-only twins.
Three ways to use twins
| Workflow | When to use it |
|---|
archal run | Run a scenario or task against twins, get a satisfaction score |
archal twin | Start persistent twins for debugging or manual integration work |
archal/vitest | Use supported hosted twins inside your existing Vitest test suite. Route mode currently supports Discord, GitHub, Google Workspace, Jira, Slack, Stripe, and Supabase |
The underlying twin runtime is the same in all three cases.
Session lifecycle
archal run handles sessions automatically: start twins, run your agent, tear down.
archal twin start gives you a persistent session that stays alive for 30 minutes of inactivity. You can extend it with archal twin renew or tear it down with archal twin stop.
Seeds
Twins start from a seed, which is a predefined initial state. Each twin has built-in seeds for common configurations (e.g. github:small-project, github:enterprise-repo).
You can also describe the state you want in plain English in a scenario’s ## Setup section, and Archal generates the seed dynamically.
See the seeds guide for the full list of built-in seeds and how to use them.