<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ida-tui.git/idatui/drive.py, branch main</title>
<subtitle>tui for headless ida</subtitle>
<id>https://git.sl0p.foo/ida-tui.git/atom/idatui/drive.py?h=main</id>
<link rel='self' href='https://git.sl0p.foo/ida-tui.git/atom/idatui/drive.py?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/'/>
<updated>2026-07-11T19:09:45Z</updated>
<entry>
<title>drive: make `dis` drive the live UI too (generalize _show_decomp -&gt; _show_view)</title>
<updated>2026-07-11T19:09:45Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-07-11T19:09:45Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=b55e5529fb96e0cfa5769d1af4e89350c8c255ce'/>
<id>urn:sha1:b55e5529fb96e0cfa5769d1af4e89350c8c255ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>drive pc: render pseudocode in the TUI, not just the driver</title>
<updated>2026-07-11T08:09:03Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-07-11T08:09:03Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=156168cb42237884edd39af15bc80138c9443910'/>
<id>urn:sha1:156168cb42237884edd39af15bc80138c9443910</id>
<content type='text'>
The pc command called only the read-only pseudocode RPC (runs off the UI
loop, never touches the screen), so LLM-driven sessions showed nothing on
the live pane. Compose goto + toggle_view + search so the real TUI
navigates to the function, makes the decomp pane the visibly-active view,
and jumps the cursor to the needle — then return the same text as before.
</content>
</entry>
<entry>
<title>drive: add save + retype; point docs/skills at the ergonomic frontend</title>
<updated>2026-07-10T14:21:36Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-07-10T14:21:36Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=a03a1e08f65806f8963eeffc5f65c28af40bc949'/>
<id>urn:sha1:a03a1e08f65806f8963eeffc5f65c28af40bc949</id>
<content type='text'>
Round out idatui.drive with 'save' and 'retype &lt;fn&gt; &lt;proto&gt;' so the whole
common RE loop (orient/understand/act/persist) has a terse command. Update
docs/RPC.md and both skills (idatui, idatui-rpc) to recommend idatui.drive
as the day-to-day driving surface, with rpcclient/raw as the fallback for
unwrapped verbs.
</content>
</entry>
<entry>
<title>drive: ergonomic RE helper over the RPC socket (terse text, auto socket)</title>
<updated>2026-07-10T14:17:50Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-07-10T14:17:50Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=33bd85e41221a82a8ee7b71d39eda59d89b78ee7'/>
<id>urn:sha1:33bd85e41221a82a8ee7b71d39eda59d89b78ee7</id>
<content type='text'>
Driving via rpcclient meant re-exporting the socket every fresh shell,
long invocations, and piping ~every call through python -c to pull one
field or grep pseudocode. idatui.drive fixes that: it auto-resolves the
socket (the single live pane from the registry), prints compact text
instead of JSON, and bundles the common gestures:

  where | go | pc &lt;fn&gt; [substr] | dis &lt;fn&gt; [n] | callees/callers &lt;fn&gt; |
  names &lt;substr&gt; | rename &lt;old&gt; &lt;new&gt; | mv old=new... | note &lt;fn&gt; &lt;text&gt; |
  screen | raw &lt;method&gt; k=v

So 'goto+rename+parse' becomes 'drive rename old new', and 'pseudocode |
python -c grep' becomes 'drive pc fn needle'. rpcclient stays the raw
transport. rpc_smoke drives it end-to-end (29 green).
</content>
</entry>
</feed>
