When your app integrates with services like Stripe, Slack, or Notion, testing locally means either hitting real APIs (risky, rate-limited, costs money) or maintaining hand-written mocks (fragile, always out of date). Arga’s digital twins give you a third option: spin up API-compatible replicas of these services and point your local app at them.Documentation Index
Fetch the complete documentation index at: https://docs.argalabs.com/llms.txt
Use this file to discover all available pages before exploring further.
How it works
Each twin is a full API emulator that runs on Arga’s infrastructure and is reachable via a public URL. Your app talks to the twin URL instead ofapi.stripe.com or api.slack.com — no code changes needed beyond swapping environment variables.
Spin up twins
From your project directory:- npx (no install needed)
- Arga CLI
- Select twins — pick the services your app uses (Slack, Stripe, Notion, etc.)
- Review
.envchanges — the wizard detects your environment variables and rewrites them to point at twins. Your original.envis backed up to.env.arga-backup. - Wait for provisioning — twins spin up in under a minute
Example: testing a Stripe checkout flow
Example: testing a Slack bot
conversations.create API. It also supports OAuth flows if your app has an “Add to Slack” install step.
Managing your session
Twin sessions last 10 minutes by default. Use these commands from your project directory:| Command | What it does |
|---|---|
arga-wizard status | Check if twins are still running and when they expire |
arga-wizard extend | Add another 10 minutes |
arga-wizard reset | Reset all twins to their initial empty state |
arga-wizard teardown | Destroy the session immediately |
.arga-session.json in your project root. Add it to your .gitignore.
From that same project directory, arga runs logs can read .arga-session.json automatically, so you can inspect the current logs snapshot for the active run without passing a run ID. Add --errors-only to focus on failed worker logs and warning/error runtime logs.
Restoring your original environment
.env manually since teardown doesn’t revert it.
Available twins
| Service | Type | What you can test |
|---|---|---|
| Stripe | UI | Payments, subscriptions, checkout, webhooks, billing portal, billing meters, dashboard |
| Slack | UI | Bot messaging, OAuth install flow, file uploads |
| Discord | UI | Bot interactions, channel management, file uploads |
| GitHub | UI | Repos, PRs, issues, branches, commits, check runs, webhooks, OAuth |
| Google Drive | UI | File CRUD, sharing, permissions |
| Google Calendar | UI | Event CRUD, calendar management |
| Dropbox | UI | File storage, uploads, downloads |
| Notion | UI | Pages, databases, workspace management |
| Box | Backend | File storage, enterprise management |
| Unified | Backend | Aggregated API across Slack, Drive, Calendar, Notion, Dropbox |
| Unstructured | Backend | Document parsing and partitioning |
Tips
Combine twins with Arga validation
Combine twins with Arga validation
After spinning up twins and starting your app, run an Arga validation against your local deployment (exposed via a tunnel like ngrok or Cloudflare Tunnel) to get automated browser-level testing with twins backing every integration.
Use twins in CI
Use twins in CI
You can provision twins in a CI pipeline by calling the API directly or running
npx arga-wizard non-interactively. Set ARGA_API_KEY as a secret and the wizard will skip the key prompt.Keep your .gitignore clean
Keep your .gitignore clean
Add these to your
.gitignore:
