you@laptop ~ $ cat /etc/motd
parley — conversational agents you own. Built from your terminal.
Tell your coding agent what the bot should do. It's live on the web in one call.
Your agent already writes your app. parley is the MCP it calls to give that
app a voice: create an agent with instructions, hand it HTTP tools, get a
hosted chat URL + an embed, connect a WhatsApp number, and read the real
transcripts back — all as tool calls, no dashboard.
Your prompt, your tools, your data, your customers. No per-conversation markup.
No email. Your SSH key is your login.
you@laptop ~ $ curl -fsSL https://parley.aikaara.com/join | shcopy
→ github you
→ key SHA256:… (~/.ssh/id_ed25519) ✔ on github
✔ joined parley as @you
workspace parley-you
akmcp_… (shown once · saved to ~/.parley/token)
added to claude code: claude mcp list
next: tell your agent “create a parley agent that …”
what it does: signs a nonce with your SSH key (
ssh-keygen -Y sign), checks the key is on
github.com/<you>.keys, mints a token, installs the MCP into Claude Code. Nothing leaves your machine but your login, your
public key and the signature.
read the script — 90 lines.
already on shipd? same token works:
claude mcp add --transport http parley https://mcp.aikaara.com/parley --header "Authorization: Bearer $(cat ~/.shipd/token)"
you@laptop ~/acme $ claude
> create a parley agent called Acme Support. it answers questions about
our return policy (30 days, unused, original packaging) and books
pickups by calling our API.
⏺ parley › create_agent
✔ acme-support is live → https://parley.aikaara.com/c/you-acme-support
embed: <iframe src="…/c/you-acme-support?embed=1">
> give it a tool: book_pickup → POST https://api.acme.com/pickups {order_id, date}
⏺ parley › add_tool ✔ book_pickup attached
> test it: "I want to return order 4412, can you pick it up Friday?"
⏺ parley › chat
reply: Sure — order 4412 is within the 30-day window. I've booked a
pickup for Friday. You'll get a confirmation shortly. (tool: book_pickup)
> connect whatsapp, phone number id 1098…, token EAAG…
⏺ parley › connect_whatsapp
webhook https://api.aikaara.com/api/v1/parley/whatsapp/parley-you/acme-support
verify 9f3c… → paste both in Meta → WhatsApp → Configuration
> what did customers ask today?
⏺ parley › conversations 12 conversations · 3 whatsapp · 9 web
⏺ parley › read_conversation 8812 …
you@laptop ~ $ man parley
TOOLS (what your agent can call)
| create_agent | name + instructions (+ greeting, model). Goes live on the web immediately: chat_url + embed. |
| update_agent | change instructions / name / greeting / model / pause. Every change is a revision — history kept. |
| chat | talk to your agent from the terminal, synchronously. Test after every change. |
| add_tool / remove_tool | an https endpoint + JSON-schema arguments. The agent calls it when the conversation needs it. |
| publish_web | hosted chat page (Turnstile-gated, rate-limited, your API key never in the browser) + iframe embed. |
| connect_whatsapp | WhatsApp Business Cloud API number → webhook URL + verify token. Inbound → agent → reply. |
| conversations / read_conversation | real traffic across web, WhatsApp and your own tests. Full transcripts incl. tool calls. |
| set_llm | bring your own key (openai / anthropic / bedrock / open_router / azure / custom). Until then: platform key, small daily budget. |
| usage | spend vs budget, BYOK status, conversations + messages 24h by channel. |
| report_bug | file what broke; it reaches the team within minutes. |
RUNTIME
The same engine that answers millions of production conversations for a
tax-filing assistant in India: prompt revisions, tool calling, per-conversation
cost accounting, transcripts, an always-on auditor. parley is that engine with
a terminal door on it.
you@laptop ~ $ cat WHATSAPP
1. Meta for Developers → create an app → add WhatsApp → note the Phone number ID
and create a System User token with whatsapp_business_messaging.
2. connect_whatsapp(agent, phone_number_id, access_token) → webhook URL + verify token.
3. App → WhatsApp → Configuration → Webhook: paste both, subscribe to messages.
4. Message the number. whatsapp_status(agent) shows the last inbound.
Optional: pass app_secret and every webhook is signature-checked.
you@laptop ~ $ cat PRICE
Free to build. Your agents run on your own LLM key (set_llm) — you pay your provider,
parley adds no per-conversation markup. Don't have a key yet? A small platform
budget per day gets you building today; usage shows where you stand.
Volume, SLAs, on-prem: aikaara.com.
you@laptop ~ $ curl -fsSL https://parley.aikaara.com/chat | shcopy
parley chat · you are @you (dev) · ctrl-c to leave
14:02 you: whatsapp webhook verify returns 403
14:05 team/venkatesh: verify token is per agent — whatsapp_status(agent) prints the current one. fixed the error text too.
terminal to terminal. Your thread, the people building parley on the other end. No ticket system.
you@laptop ~ $ cat COLOPHON
parley is an aikaara venture. The platform behind it (agents, tools, transcripts,
auditor, gateway) is what we run in production for our own customers.
Interim home: parley.aikaara.com — apex parley.chat later.
Sibling: shipd — one command, backend + frontend + database, live. Same login.