ivault or image-vault, designed to keep track of yocto images
  • Python 98.8%
  • Shell 1.2%
Find a file
2026-04-08 17:58:14 +02:00
src/image_vault rename CLI command from stow to furl 2026-04-08 17:58:14 +02:00
tests rename CLI command from stow to furl 2026-04-08 17:58:14 +02:00
.gitignore feat: implement git-based versioning and build numbers for stashes 2026-03-11 13:40:06 +01:00
.python-version Initial implementation of Image-Vault CLI 2026-01-28 14:07:43 +01:00
AGENTS.md rename CLI command from stow to furl 2026-04-08 17:58:14 +02:00
GEMINI.md rename CLI command from stow to furl 2026-04-08 17:58:14 +02:00
install.sh rename CLI command from stow to furl 2026-04-08 17:58:14 +02:00
project_plan.md rename CLI command from stow to furl 2026-04-08 17:58:14 +02:00
pyproject.toml rename CLI command from stow to furl 2026-04-08 17:58:14 +02:00
README.md rename CLI command from stow to furl 2026-04-08 17:58:14 +02:00
uv.lock feat: save and display branch commits in stashes 2026-03-11 14:12:11 +01:00

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