https://github.com/kpiljoong/tome
Zero-runtime, append-only journal & blob store for files. Save, search, sync, and share file snapshots locally or remotely (S3, GitHub). Portable, developer-friendly CLI.
https://github.com/kpiljoong/tome
append-only backup-tool blobstore cli developer-tool file-sync go journal local-first s3
Last synced: 5 months ago
JSON representation
Zero-runtime, append-only journal & blob store for files. Save, search, sync, and share file snapshots locally or remotely (S3, GitHub). Portable, developer-friendly CLI.
- Host: GitHub
- URL: https://github.com/kpiljoong/tome
- Owner: kpiljoong
- License: mit
- Created: 2025-05-02T03:32:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-14T17:00:36.000Z (about 1 year ago)
- Last Synced: 2025-05-14T17:41:56.959Z (about 1 year ago)
- Topics: append-only, backup-tool, blobstore, cli, developer-tool, file-sync, go, journal, local-first, s3
- Language: Go
- Homepage:
- Size: 94.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tome
[](https://choosealicense.com/licenses/mit/)

**Tome** is a zero-runtime, append-only journal and blob store for files. Designed for developers and systems alike, it lets you save, search, sync, and share file snapshots efficiently — both locally and remotely (e.g., S3, GitHub).
## Features
- **Snapshot** files into an append-only journal
- **Search** by filename or full path
- **Sync** with remote storage (S3, GitHub support)
- **Share** files with temoporary or shortened URLs
- **Organize** with namespaces (like Git branches)
- Minimal dependencies, portable CLI tool
## Installation
```bash
go install github.com/kpiljoong/tome@latest
```
Or download binaries from [Releases](https://github.com/kpiljoong/tome/releases) for Windows, macOS, and Linux.
## Usage
### Save a file
```bash
tome save workbooks plan.json
```
### Search entries
```bash
tome search workbooks plan
```
### List namespace entries
```bash
tome ls workbooks
```
### Get the latest version
```bash
tome latest workbooks plan.json --output ./restored.json
```
### Sync with S3
```bash
tome sync --to s3://your-bucket/prefix
```
### Status check
```bash
tome status --from s3://your-bucket/prefix --json
```
### Share a file
```bash
tome share workbooks plan.json --from s3://your-bucket/prefix --shorten
```
### Terminal UI (TUI)
You can browse saved journal entries in a terminal interface:
```bash
tome tui
```
## Configuration
Create a config file at `~/.tome/config.yaml`:
```yaml
default_remote: s3://your-bucket/prefix
```
## Structure
- `.tome/` - Local store
- `blobs/` - Content-addressed file blobs
- `journals//` - Journal entries as JSON
- Remotes (S3/GitHub) mirror the same layout
## Testing
```bash
go test ./...
```
## License
[](https://github.com/kpiljoong/tome/blob/master/LICENSE)