twins.la icon

twins.la

Where agents meet their environment.

What is twins.la?

twins.la provides high-fidelity digital twins of real APIs. Write your code against a twin, then switch to the real service by changing the hostname and credentials. No provider accounts needed to develop. No mocks, no stubs — real API behavior within supported scenarios.

Each twin runs locally (pip install) or in the cloud (point at the URL). Same package, same behavior, your choice.

Available twins

anthropic.twins.la

Anthropic Messages API — full + SSE streaming

POST /v1/messages · count_tokens · models list · prompt-caching + extended-thinking betas · x-api-key + anthropic-version auth

aoai.twins.la

Azure OpenAI — chat/completions, embeddings, completions

Path-prefixed resources · dual auth (api-key + AAD Bearer) · per-resource JWKS + token endpoint · deployments via Twin Plane (no ARM)

.twins.la

Facebook Login — OAuth 2.0 and Graph API

OAuth code + implicit flows · token exchange · /me profile · /debug_token · v19.0 / v21.0

livekit twin

LiveKit WebRTC and video conferencing APIs

Rooms · participants · egress · WebSocket signaling · local only

bf.twins.la

Microsoft Bot Framework — channel (msteams) + bot halves

JWKS publication · OAuth client_credentials · channel→bot JWT signing · bot /api/messages with specific JWT-rejection reasons · operator-driven inbound simulation · manual SDK trust override required

telegram.twins.la

Telegram Bot API — messaging

Bot identity · sendMessage · webhooks (with secret token) · getUpdates · inbound simulation

twilio.twins.la

Twilio SMS and SendGrid Email APIs

SMS send/receive · MMS · multi-segment · STOP/START/HELP · signed webhooks · status callbacks (queued→delivered/failed/undelivered) · email send

How it works

Cloud: Each twin runs at its own subdomain. Create an account via the twin's management API (POST /_twin/accounts), get credentials, and use the standard provider API against the twin's URL.

Local: Install the twin package and a storage backend. Run it on localhost. Same API surface, same behavior, no network dependency.

Every twin exposes a Twin Plane at /_twin/ — a standardized management API for health checks, scenario listing, logs, account creation, and configuration. Tooling built for one twin works with all of them.

For agents

Copy this into your agent's system prompt, tool configuration, or CLAUDE.md. Each twin also serves its own specific instructions at /_twin/agent-instructions.

# twins.la — Digital API Twins

twins.la provides high-fidelity digital twins of real APIs.
Code written against a twin works against the real service
with only hostname and credential changes.

## Available Twins

- anthropic.twins.la — Anthropic Messages API (POST /v1/messages full + SSE
  streaming, count_tokens, models list; prompt-caching + extended-thinking
  betas via anthropic-beta header; auth: x-api-key + anthropic-version)
  Agent instructions: https://anthropic.twins.la/_twin/agent-instructions
- aoai.twins.la — Azure OpenAI (chat/completions, embeddings, completions
  under /<resource>/openai/deployments/<deployment>/...;
  dual auth: api-key header OR Azure AD Bearer; JWKS + token endpoint
  published per resource; deployments managed via Twin Plane, no ARM)
  Agent instructions: https://aoai.twins.la/_twin/agent-instructions
- facebook.twins.la — Facebook Login (OAuth 2.0 + Graph API)
  Agent instructions: https://facebook.twins.la/_twin/agent-instructions
- LiveKit twin — LiveKit WebRTC APIs (local only)
  GitHub: https://github.com/twins-la/livekit
- bf.twins.la — Microsoft Bot Framework (channel + bot halves;
  JWKS, OAuth client_credentials, JWT-signed activities; manual SDK trust override
  required)
  Agent instructions: https://bf.twins.la/_twin/agent-instructions
- telegram.twins.la — Telegram Bot API (messaging)
  Agent instructions: https://telegram.twins.la/_twin/agent-instructions
- twilio.twins.la — Twilio SMS (bidirectional, MMS, STOP/START/HELP, full
  delivery-status lifecycle, signed webhooks) + SendGrid Email APIs
  Agent instructions: https://twilio.twins.la/_twin/agent-instructions

## How to Use (any twin)

1. Pick a twin from the list above
2. Create an account: POST https://{twin}/_twin/accounts
3. Use the returned credentials with the standard provider API
4. Check supported scenarios: GET https://{twin}/_twin/scenarios

## Twin Plane (common to all twins)

Every twin exposes these management endpoints (no auth required):
  GET  /_twin/health              — status check
  GET  /_twin/scenarios           — what the twin supports
  GET  /_twin/logs                — operation logs
  GET  /_twin/settings            — configuration
  GET  /_twin/agent-instructions  — agent-specific usage guide
  POST /_twin/accounts            — create credentials

## Local Usage

pip install twins-twilio twins-local
python -c "
from twins_local.storage_sqlite import SQLiteStorage
from twins_twilio.app import create_app
app = create_app(storage=SQLiteStorage('twin.db'))
app.run(port=8080)
"

## Reference

Project: https://github.com/twins-la/twins-la
Principles: https://github.com/twins-la/twins-la/blob/main/PRINCIPLES.md