PhoenixGenApiTui is a terminal-based interactive explorer for PhoenixGenApi applications. Navigate your services, function configs, call flows, cluster topology, rate limits, and runtime health โ without leaving the terminal.
Installation
Add phoenix_gen_api_tui to your dependencies:
def deps do
[
{:phoenix_gen_api_tui, "~> 0.1.0"}
]
endFor development-only exploration, restrict to :dev:
{:phoenix_gen_api_tui, "~> 0.1.0", only: :dev}Quick Start
Start your application and open IEx:
iex -S mix
Then launch the TUI:
iex> PhoenixGenApiTui.ui()UI Layout
โญโ ๐ฅ PhoenixGenApi TUI Explorer โ UserService โโโโโโโโโโโโโโโโโโโโโโโโฎ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โญโ Search โโโโโโโโโโโโโโฎ โญโ user_service โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ / search... โ โ Functions โ Call Flows โ Cluster โ Health โ.. โ
โฐโโโโโโโโโโโโโโโโโโโโโโโฏ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โญโ Navigation 2s ยท 3f โโฎ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โถ โ user_service (2) โ โ Request Type Version Response Nodes โ
โ โ get_user โ โ get_user 1.0.0 sync [node1] โ
โ โ create_user โ โ create_user 1.0.0 sync [node1] โ
โ โ blog_service (1) โ โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโฏ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ j/k navigate โ select h/l panels Tab tabs / search r refresh q โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏHow It Works
PhoenixGenApiTui reads runtime configuration from your running PhoenixGenApi application:
iex> PhoenixGenApiTui.ui()
โ PhoenixGenApiTui.Introspection.load()
โ PhoenixGenApi.ConfigDb.get_all_functions()
โ PhoenixGenApi.Diagnostics.list_call_flows()
โ PhoenixGenApi.Diagnostics.cluster_view()
โ PhoenixGenApi.Diagnostics.health_check()
โ PhoenixGenApi.Diagnostics.statistics()
โ PhoenixGenApi.RateLimiter.get_configured_limits()
โ Pre-loaded into navigable state struct
โ ExRatatui.App renders it (local, SSH, or distributed)No database connection is needed. The tool reads the shape of your running system, not its data.
Data Caching
The explorer caches introspection data with a 30-second TTL to avoid excessive RPC calls. Press r at any time to force a refresh. The header shows a status indicator:
โโ All subsystems loaded successfullyโโ Some subsystems unavailable (partial data)โโ Connection error
See Also
- Keyboard Reference โ all keybindings
- Transports โ SSH and distributed mode
- Tab Reference โ what each tab shows