ivault or image-vault, designed to keep track of yocto images
- Python 98.8%
- Shell 1.2%
| src/image_vault | ||
| tests | ||
| .gitignore | ||
| .python-version | ||
| AGENTS.md | ||
| GEMINI.md | ||
| install.sh | ||
| project_plan.md | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
Image-Vault (furl)
A Git-like CLI tool for managing Yocto build artifacts.
Overview
Image-Vault helps you manage your Yocto build images by providing a simple way to:
- Stash build artifacts (
.wic,.bmap,.tar.gz) to a structured archive - Log your build history with Git-like aesthetics
- Show details of any stashed build
No more losing your working builds when Yocto overwrites them!
Installation
# Using uv (recommended)
uv tool install .
# Or install in development mode
uv sync
uv run furl --help
Quick Start
# Initialize the vault
furl config init
# Stash current build artifacts
cd /path/to/yocto/tmp/deploy/images/your-machine
furl stash -m "Working GPS build"
# View stash history
furl log
# Show details of a specific stash
furl show 5b6fef3d
# Check vault status
furl status
Commands
furl stash
Stash Yocto build artifacts to the vault.
furl stash # Stash files from current directory
furl stash -m "Release build v1.0" # Add a comment
furl stash -d /path/to/deploy # Specify directory
furl stash -y # Skip confirmation
furl log
Show the stash history.
furl log # Show all stashes
furl log -n 5 # Show last 5 stashes
furl log --machine eurotestbox # Filter by machine
furl log --no-color # Disable colored output
furl show <id>
Show details of a specific stash.
furl show 5b6fef3d # Show stash details
furl show 5b6f # Partial ID works too
furl show 5b6fef3d --json # Output as JSON
furl status
Show vault status and statistics.
furl status
furl config
Manage configuration.
furl config show # Show current config
furl config set-path /mnt/vault # Change storage location
furl config init # Initialize the vault
Configuration
Configuration is stored in ~/.config/image-vault/config.json:
{
"storage_path": "/mnt/data/image-vault"
}
Storage Structure
Files are organized by machine and build timestamp:
/mnt/data/image-vault/
├── db.json
├── eurotestbox/
│ ├── 20260128100527/
│ │ ├── etb-image-eurotestbox-20260128100527.rootfs.wic.gz
│ │ ├── etb-image-eurotestbox-20260128100527.rootfs.wic.bmap
│ │ └── etb-image-eurotestbox-20260128100527.rootfs.tar.gz
│ └── 20260201090000/
└── mmi-imx8/
└── 20260115143022/
Requirements
- Python 3.10+
- click
License
MIT