Use Helix (hx) modal editor — selection-first editing with tree-sitter textobjects. Use when configuring keybindings, setting up language servers, or customizing themes.
Scanned 9/7/2026
Install to Claude Code
npx -y skills add knoopx/pi --skill hx --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Hx?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/knoopx-skill-1db9mz1)More formats (shields.io, HTML) on the badges page.
---
name: hx
description: "Use Helix (hx) modal editor — selection-first editing with tree-sitter textobjects. Use when configuring keybindings, setting up language servers, or customizing themes."
token_cost: 140
related: [vscode]
keywords: ["helix", "hx", "modal", "keybinding", "theme"]
---
# Helix
Modal text editor with selection-first editing and tree-sitter integration. The model is simple: select text first, then act on it (delete, yank, change). Supports multiple simultaneous selections.
## Modes & Navigation
- **Normal**: navigation and editing — `i` inserts before selection, `v` enters select mode
- **Insert**: typing mode — `jk` or `Escape` returns to Normal
- **Select/extend**: making multi-cursor selections
Key commands in Normal mode:
- `/` search forward, `n`/`N` next/previous match
- `gd` go to definition, `]d`/`[d` next/previous diagnostic
- `Space` opens Space mode (pickers, LSP actions)
- `ma`/`mi` select around/inside textobjects (tree-sitter aware)
## Space Mode (LSP & Pickers)
Accessed via `Space` in Normal mode:
- `f` file picker, `b` buffer picker, `s` document symbols
- `d` diagnostics, `a` code action, `r` rename, `k` hover docs
- `/` global search
## Configuration
Config lives in `~/.config/helix/config.toml` (global) or `.helix/config.toml` (project-local).
```toml
theme = "onedark"
[editor]
line-number = "relative"
mouse = false
auto-format = true
[keys.normal]
C-s = ":w" # Save with Ctrl+S
g = { a = "code_action" } # ga triggers code action
[keys.insert.j]
k = "normal_mode" # jk escapes insert mode
```
## Language Servers
Configure in `languages.toml`:
```toml
[[language]]
name = "rust"
language-servers = [{ name = "rust-analyzer", except-features = ["format"] }, "taplo"]
```
## Shell Integration
Pipe selection through external commands or insert command output:
- `|` pipe selection through a command
- `!` insert command output before selection
- `:pipe` typable command for piping
## Key Constraints
- Selection-first editing — you must select text before acting on it
- Tree-sitter provides syntax-aware textobjects and navigation
- Project-local config merges with global config
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!