https://github.com/lepinkainen/hermes
Gather data from different sources, store it in JSON and Markdown format locally
https://github.com/lepinkainen/hermes
goodreads-data imdb json markdown obsidian steam-api
Last synced: 5 months ago
JSON representation
Gather data from different sources, store it in JSON and Markdown format locally
- Host: GitHub
- URL: https://github.com/lepinkainen/hermes
- Owner: lepinkainen
- License: mit
- Created: 2024-07-06T13:45:45.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-14T21:30:51.000Z (6 months ago)
- Last Synced: 2026-01-15T02:08:42.728Z (6 months ago)
- Topics: goodreads-data, imdb, json, markdown, obsidian, steam-api
- Language: Go
- Homepage:
- Size: 1.45 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: history/datasette_integration.md
- Contributing: docs/contributing.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Hermes

Hermes is a tool to own your data. It can parse exported data from different sources and collect them in a JSON, Obsidian flavoured markdown, or SQLite/remote Datasette format on your own computer.
Partially ✨Vibe coded✨ with Cursor, Claude Code and Cline
## Key Features
- Export to Markdown, JSON, and SQLite
- Optional remote export to a Datasette instance for querying and sharing
## Documentation
Comprehensive documentation is available in the `docs/` directory:
- [Project Overview](docs/01_overview.md)
- [Installation & Setup](docs/02_installation_setup.md)
- [Architecture](docs/03_architecture.md)
- [Configuration](docs/04_configuration.md)
- [Output Formats](docs/05_output_formats.md)
- [Caching](docs/06_caching.md)
- [Logging & Error Handling](docs/07_logging_error_handling.md)
### Importers
- [Goodreads Importer](docs/importers/goodreads.md)
- [IMDb Importer](docs/importers/imdb.md)
- [Letterboxd Importer](docs/importers/letterboxd.md)
- [Steam Importer](docs/importers/steam.md)
### Utilities
- [Command Utilities](docs/utilities/cmdutil.md)
- [Configuration Utilities](docs/utilities/config.md)
- [Error Utilities](docs/utilities/errors.md)
- [File Utilities](docs/utilities/fileutil.md)
## Sources
- ✅ Imdb "Your ratings" import
- Data enriched from OMDB
- ✅ Letterboxd using [data export](https://letterboxd.com/user/exportdata/)
- Data enriched from OMDB
- Automated export via `hermes import letterboxd --automated` (Chrome/Chromium required)
- ✅ Goodreads
- Data enriched from openlibrary
- Automated export via `hermes import goodreads --automated` (Chrome/Chromium required)
- ✅ Steam
- Uses Steam API to fetch list of games you own (BYO Steam API key)
- Game data enriched via Steam API
## Commands
### Enhance
Enrich existing Obsidian markdown notes with TMDB metadata:
```bash
hermes enhance ./markdown/movies --recursive
```
See [docs/04_configuration.md](docs/04_configuration.md#enhance) for configuration options.
### Diff
Compare imported data between sources:
```bash
# Generate markdown diff report
hermes diff imdb-letterboxd
# Generate HTML report
hermes diff imdb-letterboxd --html diff.html
```
See [docs/08_diff.md](docs/08_diff.md) for details.
## Other
Most API data is cached locally just to be a good API citizen
- Initial Steam import might take a while, you need to restart every few hours
- OMDB has a 1k/day limit, so bigger lists may take a few days to fully process