A terminal UI for Ray clusters. Because the dashboard shouldn't require a browser.
... lightly sautéed with chaos where anyone can cook 🍝
- Dashboard — cluster health, resource bars, job donut chart, proportional status bar, node heatmap, power bar
- Jobs — list with status/sort/filter, drill into metadata, task summary, and scrollable logs
- Nodes — list with health indicators, drill into info, actors, and log files
- Actors — list all actors, drill into state, metadata, and logs
- Serve — view Serve applications, deployments, and replica status
- Events — cluster event timeline with severity filtering
- Command palette — fuzzy search commands with autocomplete (
:), type to filter, Tab to cycle and fill - Profiles — save and switch between multiple clusters
- Custom keybindings — fully configurable keys with auto-updating hint bar
- MCP server — expose Ray cluster data to AI agents via Model Context Protocol
- Clipboard — copy log lines (
y) or visible page (Y) to clipboard - Live refresh — configurable polling interval with latency indicator
- Hotkey hints — context-sensitive keybinding hints in every view
- Keyboard-driven — vim-style navigation, no mouse needed
go install github.com/GangGreenTemperTatum/rayatouille/cmd/rayatouille@latestOr build from source:
git clone https://github.com/GangGreenTemperTatum/rayatouille.git
cd rayatouille
just build # or: make buildrayatouille --address http://your-ray-cluster:8265
# or set once
export RAY_DASHBOARD_URL=http://your-ray-cluster:8265
rayatouilleGlobal (work everywhere)
| Key | Action |
|---|---|
1-5 |
Jump to view (jobs/nodes/actors/serve/events) |
Tab |
Cycle views |
Esc |
Back |
? |
Help overlay |
: |
Command palette |
q |
Quit |
List views (jobs, nodes, actors, serve, events)
| Key | Action |
|---|---|
j/k |
Up/down |
Enter |
Drill into selected item |
/ |
Filter |
s |
Cycle sort |
View-specific filter keys:
| View | Keys |
|---|---|
| Jobs | r running (default) f failed c completed p pending a all |
| Nodes | l alive d dead a all |
| Actors | l alive d dead p pending a all |
| Serve | r running d deploying f failed a all |
| Events | e error w warning i info a all |
Detail views (job detail, node detail, actor detail)
| Key | Action |
|---|---|
Tab |
Cycle sections (metadata/tasks/logs) |
j/k |
Scroll line by line |
space/b |
Page down/up |
d/u |
Half page down/up |
G/g |
Jump to bottom/top |
y |
Copy current line to clipboard |
Y |
Copy visible page to clipboard |
r |
Refresh |
/ |
Search logs |
n/N |
Next/prev match |
Command palette (press :)
Type to filter, Tab/Down to cycle and autocomplete, Enter to execute.
:jobs :nodes :actors :serve :events :dash :profile <name>
rayatouille profile add prod --address http://ray-prod.example.com
rayatouille profile use prod
rayatouilleSwitch at runtime with :profile prod
| Flag | Env | Default |
|---|---|---|
--address |
RAY_DASHBOARD_URL |
http://localhost:8265 |
--timeout |
-- | 10s |
--refresh-interval |
-- | 5s |
Create ~/.config/rayatouille/keybindings.json to override any default key:
{
"global": {
"quit": ["ctrl+q"],
"help": ["?", "F1"]
},
"jobs": {
"running": ["R"],
"failed": ["F"],
"sort": ["S"]
},
"logging": {
"copy_line": ["y"],
"copy_page": ["Y"],
"search": ["/"],
"next_match": ["n"],
"prev_match": ["N"]
}
}Only specify keys you want to change -- omitted keys keep their defaults. Custom keys are reflected in the hotkey hints bar automatically.
Available sections: global, jobs, nodes, actors, serve, events, detail, logging.
rayatouille completion bash > /etc/bash_completion.d/rayatouille
rayatouille completion zsh > "${fpath[1]}/_rayatouille"
rayatouille completion fish > ~/.config/fish/completions/rayatouille.fishRayatouille includes an MCP server that exposes Ray cluster data to AI agents (Claude Code, Cursor, etc.) via the Model Context Protocol.
go install github.com/GangGreenTemperTatum/rayatouille/cmd/rayatouille-mcp@latestAdd to your .mcp.json (Claude Code) or equivalent MCP config:
{
"mcpServers": {
"rayatouille": {
"command": "rayatouille-mcp",
"env": {
"RAY_DASHBOARD_URL": "http://your-ray-cluster:8265"
}
}
}
}If RAY_DASHBOARD_URL is not set, it defaults to http://localhost:8265.
| Tool | Description |
|---|---|
ray_cluster_health |
Cluster health: version, node counts, resources, job summary |
ray_list_jobs |
List all jobs with status, entrypoint, and timing |
ray_list_nodes |
List nodes with state, IP, resources, and labels |
ray_list_actors |
List actors with state, class, job ID, PID, and node |
ray_serve_status |
Serve application status, deployments, and replicas |
ray_cluster_events |
Cluster events with severity and timestamps |
ray_job_logs |
Get logs for a job by submission ID |
ray_task_summary |
Task summary for a job by job ID |
ray_node_logs |
List available log files for a node |
ray_node_log_file |
Get contents of a specific node log file |
ray_actor_logs |
Get stdout logs for an actor |
just check # fmt + lint + test (all-in-one)
just build # build binary
just test # unit tests
just test-e2e # e2e against live cluster
just lint # go vet + golangci-lint
just fmt # format
just run --address http://your-cluster:8265Or use make -- same targets.
Go / Bubble Tea / Lip Gloss / Cobra / MCP Go SDK / Ray Dashboard API
Anyone can cook. Anyone can monitor their Ray cluster.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
By watching the repo, you can also be notified of any upcoming releases.

