# tui/app-threads
List active app threads with per-app metrics. Returns a list of maps, one per running app thread:
```
%{ :name <string> # app name (e.g. "editor", "sysmon")
:tid <number> # OS thread ID (for /proc/self/task/<tid>/stat)
:panel-id <number> # workspace panel ID hosting this app
:heap-kb <number> # live GC heap bytes / 1024 (direct read, no IPC)
:peak-heap-kb <number> # peak GC heap allocation / 1024
:gc-cycles <number> # GC collection cycles (gc/stats :cycles)
:gc-freed-kb <number> # cumulative GC bytes freed / 1024
:next-gc-kb <number> # next-GC heap threshold / 1024
}
````
Heap and GC stats are read directly from the app's `Runtime.vm.heap` —
no remote eval or serialization needed. Values may be slightly stale
(cross-thread read without locking) but are fine for monitoring.
## Syntax
[tui/app-threads]
## Returns
list of maps