Current section
Files
Jump to
Current section
Files
guides/getting_started.md
# Getting Started with PhoenixGenApiTui
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:
```elixir
def deps do
[
{:phoenix_gen_api_tui, "~> 0.1.0"}
]
end
```
For development-only exploration, restrict to `:dev`:
```elixir
{:phoenix_gen_api_tui, "~> 0.1.0", only: :dev}
```
## Quick Start
Start your application and open IEx:
```bash
iex -S mix
```
Then launch the TUI:
```elixir
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](keyboard_reference.md) ā all keybindings
- [Transports](transports.md) ā SSH and distributed mode
- [Tab Reference](tabs.md) ā what each tab shows