- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
git.sr.ht is being decommissioned. The Forgejo instance serves the go-import meta tag, so tag-based 'go get' keeps working under the new path. The ../rawg-go and ../openlibrary-go workspace replaces now point at their renamed modules (openlibrary-go v0.0.1, rawg-go v1.0.1 carry the same rename). |
||
| cmd | ||
| internal | ||
| pkg | ||
| testdata | ||
| .gitignore | ||
| .golangci.toml | ||
| go.mod | ||
| go.sum | ||
| LICENSE.md | ||
| logs.schema.json | ||
| mise.toml | ||
| README.md | ||
ART
Personal CLI tool for logging books, movies, TV shows, and games. Mostly made for myself.
Named after my favorite character from the Murderbot Diaries.
Features
- Log and list books, movies, TV shows, and games with ratings and reviews
- Search and fetch metadata from external APIs:
- TMDB for movies and TV shows
- OpenLibrary for books
- RAWG for games
- Works without internet — falls back to manual entry
- Interactive terminal forms via Charm
- Star ratings (1–5) with optional review comments
- JSON output (
--json) for all list commands - Pager support via
$PAGER(falls back to/usr/bin/less) - Logs stored in a single TOML file
Install
Requires Go 1.26+.
make install
By default installs to /usr/local/bin. Override with PREFIX:
make install PREFIX=~/.local
Usage
art [command]
Commands
| Command | Description |
|---|---|
books add |
Log a book |
books list |
List logged books |
books check |
Find entries missing details |
movies add |
Log a movie |
movies list |
List logged movies |
movies check |
Find entries missing details |
tv add |
Log a TV show season |
tv list |
List logged TV shows |
tv check |
Find entries missing details |
games add |
Log a game |
games list |
List logged games |
games check |
Find entries missing details |
init |
Set up config (API keys, paths) |
config |
Display current configuration |
edit |
Open logs file in $EDITOR |
Global flags
--debug— Debug output--json— Output in JSON--config <path>— Custom config file path--path <path>— Path to the log file (overrides thelogsconfig value)
Command aliases
books/bookmovies/movie/film/filmstv/shows/showgames/game
Configuration
Run art init to create the config file:
tmdb_api_key = "your_tmdb_key"
rawg_api_key = "your_rawg_key"
logs = "/path/to/logs.toml"
The TMDB API key is required for movies and TV shows. The RAWG API key is optional but needed for game metadata. OpenLibrary requires no API key.
Config file lookup
Unless --config <path> is given, art.toml is looked up in, in order:
- the current directory
$XDG_CONFIG_HOME/art- the user config dir (
~/.config/arton Linux,~/Library/Application Support/arton macOS) ~/.config/art$HOME
If none exist, art init writes to the user config dir.
Environment variables
Every config value can be overridden with an ART_-prefixed environment
variable:
| Variable | Config key |
|---|---|
ART_TMDB_API_KEY |
tmdb_api_key |
ART_RAWG_API_KEY |
rawg_api_key |
ART_LOGS |
logs |
Precedence is flag → environment variable → config file. A missing config file is not an error as long as the needed values come from flags or the environment.
TODO
- Traveled: Travel
addlistimport- Work without internet
- Entries missing details
- Dry-run command:
--dry-run, -n - Use
$PAGERwhen listing more items that fit on screen- Fallback is
/usr/bin/less
- Fallback is