<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ida-tui.git/idatui/pane.py, branch main</title>
<subtitle>tui for headless ida</subtitle>
<id>https://git.sl0p.foo/ida-tui.git/atom/idatui/pane.py?h=main</id>
<link rel='self' href='https://git.sl0p.foo/ida-tui.git/atom/idatui/pane.py?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/'/>
<updated>2026-07-10T13:50:30Z</updated>
<entry>
<title>pane: auto-start the ida-pro-mcp supervisor if it's down</title>
<updated>2026-07-10T13:50:30Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-07-10T13:50:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=23a63681a61c2b522576d77dfd140f2174273a95'/>
<id>urn:sha1:23a63681a61c2b522576d77dfd140f2174273a95</id>
<content type='text'>
Before creating the TUI pane, spawn probes 127.0.0.1:8745 and, if nothing
is listening, launches ./spawn.sh in its own detached tmux pane and waits
for the port (server_started/server_pane are reported in the JSON). Only
for a local server, never a duplicate (spawn.sh binds the port), and it's
not killed on 'stop' (shared across TUIs). --no-ensure-server opts out;
IDATUI_SERVER_CMD overrides the launch command (used by the test).

tests/pane_smoke.py exercises the machinery with a dummy port-binder in a
pane (start / detect / idempotent / remote-guard), 5 green.
</content>
</entry>
<entry>
<title>pane: spawn/stop/list idatui TUI panes in tmux for agent-driven RE</title>
<updated>2026-07-10T13:37:45Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-07-10T13:37:45Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=d28cec909cc52ae4f08aaf9ec3b60f1cca306d52'/>
<id>urn:sha1:d28cec909cc52ae4f08aaf9ec3b60f1cca306d52</id>
<content type='text'>
python -m idatui.pane spawn --open &lt;bin&gt;  (or --db &lt;session&gt;) splits a
tmux pane running the TUI on a fresh RPC socket, blocks until it reports
ready (ping.ready; --open runs full auto-analysis so the default wait is
generous), and prints {sock,pane,ready,functions,module} as JSON. The
agent then drives it via idatui.rpcclient and tears it down with
'stop --sock &lt;s&gt;' (graceful quit -&gt; kill-pane -&gt; unlink). A small
registry in $XDG_RUNTIME_DIR tracks panes for 'list'/'stop'.

Verified end-to-end: spawn -&gt; goto/pseudocode -&gt; list -&gt; stop.
</content>
</entry>
</feed>
