Test Helix editor config changes, debug LSP issues, or observe editor behavior by running Helix in a tmux session. Use when iterating on helix config.toml, languages.toml, Steel scripts, or troubleshooting language server problems.
Interact with the Helix editor through tmux, typically to iterate on configuration changes or fix config problems. Also useful for testing LSP functionality or observing editor behavior.
If the user specifies a file path to use for testing, open that file in helix. For a language name (like "rust", "python", "typescript"), create a temporary file with representative code. Some language servers require a full project structure (e.g., cargo init for Rust) rather than a standalone file.
Driving Helix through tmux is timing-sensitive: captures race LSP startup and popups, so a failed check is often the harness rather than the config. Verify that the config loads without errors and that the feature works once. If a check keeps failing in ways that look like capture timing rather than a config problem, hand it to the user to try interactively instead of retrying.
Helix requires a PTY which isn't available through direct bash commands. Use tmux:
command -v tmux and command -v hx). If missing, inform the user.tmux new-session -d -s helix-testtmux send-keys -t helix-test 'hx file.txt' C-mtmux capture-pane -t helix-test -ptmux send-keys -t helix-test ':q!' C-m && tmux kill-session -t helix-testKey points:
C-m for Enter, Escape for Escapesleep 0.2-0.5 before capturing to allow LSP analysis (slower LSPs may need 1-2 seconds):config-reload and :lsp-restart when testing config changeshx --health or hx --health rustWhen converting keybinding commands to Steel functions:
Command expansions like %{buffer_name} work in command strings but must be replaced with Steel API calls in functions:
(helix.static.cx->current-file)(helix.static.current-highlighted-text!)cx-> functions in steel-docs.md for other context accessShell commands:
(helix.run-shell-command "cmd" "arg1" "arg2"):echo %sh{...})(apply helix.run-shell-command args-list)Testing:
tmux capture-pane), unlike :echo %sh{...} which outputs to the status lineConfig locations:
~/.config/helix/ (config.toml, languages.toml, etc.).helix/ directory (if it exists)Startup errors: Some errors (e.g., Steel init failures) only show on the scratch buffer. Always test with hx (no file argument) first — opening a file prints "Loaded N file(s)." which overwrites the error in the status line.
Logs: Usually at ~/.cache/helix/helix.log (use tail -n 100). If stale, open in Helix with :log-open and jump to bottom (G).
tmux new-session -d -s helix-test
tmux send-keys -t helix-test 'hx test.rs' C-m
sleep 0.3
tmux send-keys -t helix-test 'i' 'fn main() { invalid }' Escape
sleep 0.5
tmux capture-pane -t helix-test -p # See LSP errors
tmux send-keys -t helix-test ':q!' C-m
tmux kill-session -t helix-test
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer