Configuration Reference
Boring, complete, searchable.
Config file location
~/.config/hash/config.toml
Create it if it doesn't exist. All fields are optional.
Shell
config.toml
[shell]
editor = "nvim" # External editor for complex edits
disable_builtins = ["cd"] # Disable builtins (e.g., to use zoxide)
init_commands = [ # Always run at startup
"source ~/.aliases"
]
[shell.startup_files]
login = ["/etc/profile", "~/.profile", "~/.hash_profile"]
interactive = ["~/.hashrc"]
editor = "nvim" # External editor for complex edits
disable_builtins = ["cd"] # Disable builtins (e.g., to use zoxide)
init_commands = [ # Always run at startup
"source ~/.aliases"
]
[shell.startup_files]
login = ["/etc/profile", "~/.profile", "~/.hash_profile"]
interactive = ["~/.hashrc"]
Input
config.toml
[input]
mode = "editor" # "editor" or "readline"
gutter = true # Show mode indicator in multiline
mode = "editor" # "editor" or "readline"
gutter = true # Show mode indicator in multiline
Prompt
config.toml
[prompt]
mode = "starship" # "starship", "built-in", "none"
starship_path = "/opt/starship/starship" # Explicit path (optional)
mode = "starship" # "starship", "built-in", "none"
starship_path = "/opt/starship/starship" # Explicit path (optional)
Agent
Hash supports one agent at a time, configured via the [agent] section.
ACP/stdio transport
config.toml
[agent]
command = "claude-code-acp"
command = "claude-code-acp"
HTTP transport
config.toml
[agent]
timeout = "120s"
transport = "http"
url = "http://localhost:11434/api/generate"
model = "codellama:13b"
timeout = "120s"
transport = "http"
url = "http://localhost:11434/api/generate"
model = "codellama:13b"
History
config.toml
[history]
enabled = true
path = "~/.local/share/hash/history.db"
max_entries = "unlimited" # or integer
max_age = "forever" # or "90d", "1y"
enabled = true
path = "~/.local/share/hash/history.db"
max_entries = "unlimited" # or integer
max_age = "forever" # or "90d", "1y"
Completions
config.toml
[completions]
fuzzy = true # Enable fuzzy matching
file_icons = true # Show file type icons (requires nerd font)
cobra_enabled = true # Enable Cobra __complete support
fuzzy = true # Enable fuzzy matching
file_icons = true # Show file type icons (requires nerd font)
cobra_enabled = true # Enable Cobra __complete support
Clipboard
config.toml
[clipboard]
max_output_size = "1MB" # Max output per command
buffer_size = 100 # Commands to keep in buffer
preserve_colors = false # Keep ANSI codes when copying
max_output_size = "1MB" # Max output per command
buffer_size = 100 # Commands to keep in buffer
preserve_colors = false # Keep ANSI codes when copying
Prediction (adaptive learning)
config.toml
[prediction]
enabled = true
confidence_threshold = 0.6 # Minimum score to suggest
accept_keys = ["right", "tab"] # Keys to accept prediction
path_min_count = 2 # Uses before suggesting path
path_recency_boost_hours = 24 # Recency boost window
enabled = true
confidence_threshold = 0.6 # Minimum score to suggest
accept_keys = ["right", "tab"] # Keys to accept prediction
path_min_count = 2 # Uses before suggesting path
path_recency_boost_hours = 24 # Recency boost window
Environment variables
| Variable | Purpose |
|---|---|
HASH_SHELL=1 | Set by Hash — detect you're in Hash |
HASH_CONFIG | Override config path |
Files
| Path | Purpose |
|---|---|
~/.config/hash/config.toml | Main config |
~/.hashrc | Interactive shell startup (like .bashrc) |
~/.hash_profile | Login shell startup (like .bash_profile) |
~/.local/share/hash/history.db | Command history (SQLite) |
~/.local/share/hash/learning.db | Learned error fixes (SQLite) |