114 lines
2.0 KiB
Markdown
114 lines
2.0 KiB
Markdown
---
|
|
publish: true
|
|
permalink: /apps/atuin
|
|
title: atuin
|
|
created: 2026-01-30T08:29:14.283-07:00
|
|
modified: 2026-02-05T12:16:17.109-07:00
|
|
tags:
|
|
- shell
|
|
- history
|
|
- sync
|
|
cssclasses: ""
|
|
---
|
|
|
|
Atuin replaces your shell history with a SQLite database, providing better search, sync across machines, and detailed statistics. It's magical for finding that command you ran three weeks ago.
|
|
|
|
## Installation
|
|
|
|
**Quick install (recommended):**
|
|
```bash
|
|
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
|
|
```
|
|
|
|
**Arch Linux:**
|
|
```bash
|
|
sudo pacman -S atuin
|
|
```
|
|
|
|
## Shell Integration
|
|
|
|
Add to your shell config:
|
|
|
|
**Bash** (`~/.bashrc`):
|
|
```bash
|
|
eval "$(atuin init bash)"
|
|
```
|
|
|
|
**Zsh** (`~/.zshrc`):
|
|
```bash
|
|
eval "$(atuin init zsh)"
|
|
```
|
|
|
|
**Fish** (`~/.config/fish/config.fish`):
|
|
```fish
|
|
atuin init fish | source
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Interactive search
|
|
Press `Ctrl+r` (or `Up` with config) to open the interactive search:
|
|
- Type to filter
|
|
- `Enter` to execute
|
|
- `Tab` to edit before running
|
|
- `Ctrl+r` to cycle through filter modes
|
|
|
|
### Filter modes
|
|
| Mode | Description |
|
|
|------|-------------|
|
|
| Global | All history across machines |
|
|
| Host | Current machine only |
|
|
| Session | Current shell session |
|
|
| Directory | Commands run in this directory |
|
|
|
|
### Commands
|
|
```bash
|
|
# Search from CLI
|
|
atuin search "docker"
|
|
|
|
# Show stats
|
|
atuin stats
|
|
|
|
# Manual sync
|
|
atuin sync
|
|
```
|
|
|
|
## Sync Setup (Optional)
|
|
|
|
Register for free sync:
|
|
```bash
|
|
atuin register -u <username> -e <email>
|
|
atuin login -u <username>
|
|
atuin sync
|
|
```
|
|
|
|
Or self-host the sync server.
|
|
|
|
## Configuration
|
|
|
|
`~/.config/atuin/config.toml`:
|
|
```toml
|
|
[settings]
|
|
# Use up arrow for atuin instead of ctrl+r
|
|
keymap_mode = "vim-normal"
|
|
|
|
# Search mode: prefix, fulltext, fuzzy
|
|
search_mode = "fuzzy"
|
|
|
|
# Filter by default
|
|
filter_mode = "host"
|
|
|
|
# Show preview of full command
|
|
show_preview = true
|
|
|
|
# Sync settings
|
|
auto_sync = true
|
|
sync_frequency = "5m"
|
|
```
|
|
|
|
## Tips
|
|
|
|
- Atuin stores history in `~/.local/share/atuin/history.db`
|
|
- Use `atuin history list` to export/inspect
|
|
- Prefix sensitive commands with a space to exclude from history
|