원클릭으로
atuin-guide
Atuin shell history management with SQLite database, fuzzy search, metadata tracking, and SQL query examples for history analysis
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Atuin shell history management with SQLite database, fuzzy search, metadata tracking, and SQL query examples for history analysis
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Step-by-step installation guide for Nix and dotfiles setup including nix.conf configuration, channel updates, home-manager, and nix-darwin
スキルのプロンプト品質を評価・チューニングする。スキルを書いたあと別のサブエージェントに実行させ、不明瞭点・自動補完箇所・達成率をレポートさせて反復改善する。Use when you want to evaluate or tune a SKILL.md prompt quality. Ref: https://zenn.dev/mizchi/articles/empirical-prompt-tuning
Generate professional English commit messages with gitmoji based on git diff. Use when creating commit messages, analyzing staged changes, or formatting commits according to conventional commits + gitmoji style.
Generate professional English commit messages with gitmoji based on git diff. Use when creating commit messages, analyzing staged changes, or formatting commits according to conventional commits + gitmoji style.
NPM tools and package management using mise including commitizen, cz-git, and global package configuration
System services configuration guide including AeroSpace, JankyBorders, and AltTab on macOS
| name | atuin-guide |
| description | Atuin shell history management with SQLite database, fuzzy search, metadata tracking, and SQL query examples for history analysis |
Atuin is a powerful shell history tool that replaces the default shell history with a SQLite database. It provides enhanced history search, synchronization across machines, and rich metadata for each command.
The configuration is managed in home-manager/atuin/default.nix:
~/.local/share/atuin/history.dbAtuin stores all command history in a SQLite database at ~/.local/share/atuin/history.db. You can query this database directly using the sqlite3 command.
The main table is history with the following structure:
CREATE TABLE history (
id text primary key,
timestamp integer not null,
duration integer not null,
exit integer not null,
command text not null,
cwd text not null,
session text not null,
hostname text not null,
deleted_at integer
);
sqlite3 -column -header ~/.local/share/atuin/history.db \
"SELECT
datetime(timestamp/1000000000, 'unixepoch', 'localtime') as time,
command,
exit,
duration/1000000 as duration_ms
FROM history
WHERE deleted_at IS NULL
ORDER BY timestamp DESC
LIMIT 20"
sqlite3 -column -header ~/.local/share/atuin/history.db \
"SELECT
command,
count(*) as count
FROM history
WHERE deleted_at IS NULL
GROUP BY command
ORDER BY count DESC
LIMIT 20"
sqlite3 -column -header ~/.local/share/atuin/history.db \
"SELECT
datetime(timestamp/1000000000, 'unixepoch', 'localtime') as time,
command,
cwd
FROM history
WHERE cwd LIKE '%your-directory%'
AND deleted_at IS NULL
ORDER BY timestamp DESC
LIMIT 20"
sqlite3 -column -header ~/.local/share/atuin/history.db \
"SELECT
datetime(timestamp/1000000000, 'unixepoch', 'localtime') as time,
command,
exit,
cwd
FROM history
WHERE exit != 0
AND deleted_at IS NULL
ORDER BY timestamp DESC
LIMIT 20"
sqlite3 -column -header ~/.local/share/atuin/history.db \
"SELECT
command,
duration/1000000000.0 as duration_sec,
datetime(timestamp/1000000000, 'unixepoch', 'localtime') as time
FROM history
WHERE deleted_at IS NULL
ORDER BY duration DESC
LIMIT 20"
sqlite3 ~/.local/share/atuin/history.db \
"SELECT count(*) as total_commands
FROM history
WHERE deleted_at IS NULL"
sqlite3 -column -header ~/.local/share/atuin/history.db \
"SELECT
strftime('%H', datetime(timestamp/1000000000, 'unixepoch', 'localtime')) as hour,
count(*) as count
FROM history
WHERE deleted_at IS NULL
GROUP BY hour
ORDER BY hour"
For more exploratory analysis, you can enter interactive mode:
sqlite3 ~/.local/share/atuin/history.db
Useful commands in interactive mode:
.tables -- List all tables
.schema history -- Show table structure
.mode column -- Enable column display mode
.headers on -- Show column headers
.quit -- Exit interactive mode
# Enter interactive mode
sqlite3 ~/.local/share/atuin/history.db
# Set display options
.mode column
.headers on
# Run custom queries
SELECT
strftime('%Y-%m-%d', datetime(timestamp/1000000000, 'unixepoch', 'localtime')) as date,
count(*) as commands
FROM history
WHERE deleted_at IS NULL
GROUP BY date
ORDER BY date DESC
LIMIT 30;
# Exit
.quit
Backup your history: The database is stored locally and is not synced by default
cp ~/.local/share/atuin/history.db ~/.local/share/atuin/history.db.backup
Export to CSV: You can export query results to CSV format
sqlite3 -header -csv ~/.local/share/atuin/history.db \
"SELECT * FROM history WHERE deleted_at IS NULL LIMIT 100" > history.csv
Database size: Check the database file size
ls -lh ~/.local/share/atuin/history.db
Vacuum database: Optimize database size by removing deleted entries
sqlite3 ~/.local/share/atuin/history.db "VACUUM;"