> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# rpc

```bash theme={null}
telnyx-acp rpc support-agent --conversation alice approve <id>
telnyx-acp rpc support-agent --conversation alice receive "hi" "+13128675309" "msg-1"
```

| Flag | Meaning |
| - | - |
| `--conversation <id>` | The conversation, which names the instance. Required. |
| `--local` | Target the running `dev` instead of the deployed agent. |

`rpc` calls one `@rpc` method on the instance with its arguments and prints the result as JSON. An argument that parses as JSON is passed as JSON, anything else as a string. The methods below are the managed loop's; a code-based class answers only what it decorates with `@rpc`.

| Method | Arguments | Does |
| - | - | - |
| `receive` | `text`, `from?`, `key?` | One inbound text. With a `from`, the memory profile is keyed on that sender. The `key` makes a redelivery a duplicate. |
| `approve` | `approvalId` | Grant a pending approval. The paused run continues on its own task. |
| `deny` | `approvalId` | Deny it. |
| `inspectApproval` | `approvalId` | The pending approval's record. |
| `pendingApproval` | `runId` | The approval a paused run waits on, `{ id, runId, toolName }`, read from the ledger on demand; `invoke` asks for it when the state has not named it. |
| `run` | `runId` | The status of a run. |

`approve`, `deny`, `inspectApproval` and `pendingApproval` are for `dev`, through `--local`: a tool marked `ask` pauses the run there and `approve` resumes it. On the deployed agent such a run pauses too, but the platform keeps no approval to decide yet, so these four answer nothing useful until that lands ([Beta Limitations](/docs/agents/beta-limitations)).

[The RPC Methods](/docs/agent-sdk/inside/request-handling/rpc-methods) is where each lands in the managed harness.
