aboutsummaryrefslogtreecommitdiffstats
path: root/docs/RPC.md
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-08-07 15:29:37 +0200
committerblasty <blasty@local>2026-08-07 15:29:49 +0200
commit8fef561903e9501281ebcc58cdb33ee4d9116fd0 (patch)
tree0edd3a430134fdddd5a4826b835360591e632507 /docs/RPC.md
parentREADME: pure markdown, and a logo sized for a README (diff)
downloadida-tui-8fef561903e9501281ebcc58cdb33ee4d9116fd0.tar.gz
ida-tui-8fef561903e9501281ebcc58cdb33ee4d9116fd0.tar.xz
ida-tui-8fef561903e9501281ebcc58cdb33ee4d9116fd0.zip
docs: drop two stale files, correct the two the README links, cut sharp edges
README: "Known sharp edges" removed. docs/GRAPH_VIEW.md pointed the graph's one backend call at server/patch_server.py, a file the port deleted. It is idatui/codemode_client.py now. This matters because GRAPH_VIEW.md is one of only two docs the README links -- a wrong path in a linked doc is worse than no doc. docs/RPC.md was missing five verbs rpc.py serves: ping/methods/quit (now a Session table) and trace/binaries/switch (with the semantic verbs). The trace verb drives a whole feature the README advertises, so its absence was the real gap. Every verb in rpc.py's METHODS table is now documented, checked mechanically -- the remainder of what looked missing turned out to be values of the "move" verb's dir parameter, not verbs. Deleted: - docs/CODEMODE_PORT.md. Written mid-port, and its Result section claims the port covered "the complete current TUI feature set". It did not: the graph view was dead, the operand-format keys were dead, pseudocode comments never appeared, and bulk rename was broken. Keeping a doc that states the opposite of what we found is worse than having none, and docs/CODEMODE_UPSTREAM.md carries the accurate account of the API limits. - docs/TUI_DRIVING_BLUEPRINT.md. A design sketch for generalizing the drive-a-TUI-over-a-socket pattern to other programs, with gdb as the main example -- which now exists for real in ~/dev/gdb-driver. Superseded by the thing it proposed. Nothing linked either file. Both remain in git history.
Diffstat (limited to 'docs/RPC.md')
-rw-r--r--docs/RPC.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/docs/RPC.md b/docs/RPC.md
index e433551..d13e8cd 100644
--- a/docs/RPC.md
+++ b/docs/RPC.md
@@ -49,6 +49,13 @@ Sequential connections (e.g. one `rpcclient` invocation per call) are fine.
## Methods
+### Session
+| method | params | notes |
+|--------|--------|-------|
+| `ping` | — | `{ok, proto, module, ready, functions, complete}` — also the default when `method` is omitted. Use it to wait for the index to finish loading. |
+| `methods` | — | this table, as data. |
+| `quit` | — | close the TUI gracefully (releases the database lease). |
+
### Raw injection (max fidelity)
| method | params | notes |
|--------|--------|-------|
@@ -88,6 +95,9 @@ predicate so the returned state is final.
| `back` | — | Escape: pop the nav stack. |
| `toggle_view` | — | Tab: disasm ⇄ pseudocode. |
| `hex` | — | `\`: hex view. |
+| `trace` | `seek` \| `goto` \| `step`, `over?` | navigate an execution trace (needs `--trace`). `seek` takes a timestamp, or `"!50"` for a percentage; `step` moves one instruction, `over=true` steps over a call. |
+| `binaries` | — | project binaries as `{label, active, resident, indexed}` (project mode only). |
+| `switch` | `label` | make another project binary active. |
| `graph` | `action?=show`, `target?`, `blocks?` | the control-flow graph (Space). `show` is a pure read — blocks, typed edges, ranks, box geometry and the cursor, **not** the box-drawing characters; `screen` gives you the drawing. `open`/`close`/`toggle` switch mode, `zoom` cycles full→compact→collapsed, `entry` jumps to the entry block, `succ`/`pred` follow one edge (`J`/`K`), `block target=<id\|0xADDR>` puts the cursor in a block. `blocks=false` omits the per-block list. See `docs/GRAPH_VIEW.md`. |
| `xrefs` | — | `x`: open the xref picker. |
| `symbols` | `query?` | Ctrl+N palette, optionally pre-typed. |