Atuin maintains two configuration files, stored in
~/.config/atuin/. We store
~/.local/share/atuin (unless overridden by XDG_*).
You can also change the path to the configuration directory by setting
ATUIN_CONFIG_DIR. For example
export ATUIN_CONFIG_DIR = /home/ellie/.atuin
The client runs on a user's machine, and unless you're running a server, this is what you care about.
See config.toml for an example
This configures how the stats command parses dates. It has two possible values
dialect = "uk"
dialect = "us"
and defaults to "us".
Configures whether or not to automatically sync, when logged in. Defaults to true
auto_sync = true/false
Configures whether or not to automatically check for updates. Defaults to true.
update_check = true/false
The address of the server to sync with! Defaults to
sync_address = "https://api.atuin.sh"
How often to automatically sync with the server. This can be given in a
"human-readable" format. For example,
1h, etc. Defaults to
If set to
0, Atuin will sync after every command. Some servers may potentially
rate limit, which won't cause any issues.
sync_frequency = "1h"
The path to the Atuin SQlite database. Defaults to
db_path = "~/.history.db"
The path to the Atuin encryption key. Defaults to
key = "~/.atuin-key"
The path to the Atuin server session file. Defaults to
~/.local/share/atuin/session. This is essentially just an API token
key = "~/.atuin-session"
Which search mode to use. Atuin supports "prefix", fulltext and "fuzzy" search modes. The prefix searches for "query*", fulltext "*query*", and fuzzy applies the search syntax described below.
Defaults to "fuzzy"
Which style to use. Possible values:
The default filter to use when searching
|global (default)||Search history from all hosts, all sessions, all directories|
|host||Search history just from this host|
|session||Search history just from the current session|
|directory||Search history just from the current directory|
Filter modes can still be toggled via ctrl-r
filter_mode = "host"
The default filter to use when searching and being invoked from a shell up-key binding.
Accepts exactly the same options as
filter_mode_shell_up_key_binding = "session"
Defaults to the value specified for filter_mode.
What to do when the escape key is pressed when searching
|return-original (default)||Set the command-line to the value it had before starting search|
|return-query||Set the command-line to the search query you have entered so far|
Pressing ctrl+c or ctrl+d will always return the original command-line value.
exit_mode = "return-query"
fuzzy search syntax
The "fuzzy" search syntax is based on the fzf search syntax.
|fuzzy-match||Items that match |
|exact-match (quoted)||Items that include |
|prefix-exact-match||Items that start with |
|suffix-exact-match||Items that end with |
|inverse-exact-match||Items that do not include |
|inverse-prefix-exact-match||Items that do not start with |
|inverse-suffix-exact-match||Items that do not end with |
A single bar character term acts as an OR operator. For example, the following
query matches entries that start with
core and end with either
^core go$ | rb$ | py$
The history filter allows you to exclude commands from history tracking - maybe you want to keep ALL of your
curl commands totally out of your shell history, or maybe just some matching a pattern.
This supports regular expressions, so you can hide pretty much whatever you want!
## Note that these regular expressions are unanchored, i.e. if they don't start
## with ^ or end with $, they'll match anywhere in the command.
history_filter = [