Security is a first-class concern in RemoteAgent.CHAT’s design. The most important property is also the simplest: your API key never leaves your machine.Documentation Index
Fetch the complete documentation index at: https://docs.remoteagent.chat/llms.txt
Use this file to discover all available pages before exploring further.
The relay model
RemoteAgent.CHAT is a pure relay. It routes messages between Telegram and your local agent. It does not:- Store your prompts or AI responses (only a 200-character preview for the session list)
- Read your source code
- See your AI API keys
- Execute code on your behalf
API key storage
API keys are stored locally in:~/.remoteagent/config.json— global config~/.remoteagent/agents/— per-agent config files
remoteagent init and read only by the local agent process. They are never uploaded, synced, or referenced by any network request made by the relay.
Recommended file permissions:
Agent authentication
When you complete pairing, the server issues a signed token stored in the per-agent config. This token authenticates the agent’s connection to the message broker and scopes it strictly to its own channels — an agent cannot access another agent’s messages or data. Tokens can be revoked by deleting the agent from the dashboard.Telegram webhook verification
Every incoming message from Telegram is verified using a cryptographic signature before any processing occurs. Requests that fail verification are rejected immediately.Telegram user authorization
The bot checks the Telegram user ID of every incoming message against the authorized users for your account. Messages from unauthorized IDs are silently ignored — no error response is sent, which avoids leaking information about which user IDs are registered. This check runs before the command reaches your agent, so unauthorized messages are dropped at the gateway.Pairing code security
Pairing codes are:- Short-lived — expire after 10 minutes
- Single-use — marked as used immediately on first redemption
- Unpredictable — generated with cryptographically secure randomness
Channel isolation
Each agent communicates only on its own private channel, derived from its token. An agent cannot read or write to another agent’s channel. Session output channels are similarly scoped and unknown to other users.Payment webhook verification
Billing events are verified against a signing secret before any plan changes are applied. Plan updates are only applied after a verified webhook event — never based on redirect URLs, client-side callbacks, or untrusted inputs.Rate limiting
The message endpoint enforces rate limiting per Telegram user ID. Requests exceeding the limit are rejected. This prevents abuse of the relay by scripts or bots flooding the system with commands.Summary
| Security control | Implementation |
|---|---|
| API key isolation | Stored locally, never transmitted |
| Agent authentication | Signed token, scoped per agent |
| Webhook integrity | Cryptographic signature on every request |
| User authorization | Telegram user ID check before every command |
| Pairing code | 10-min TTL, single-use, cryptographically random |
| Channel isolation | Private channels per agent, token-verified |
| Payment integrity | Signed webhook events only |
| Rate limiting | Per user ID, enforced at the gateway |