Skip to main content

Terraform-inspired filesystem orchestration tool

Project description

seed-cli

seed is a Terraform-inspired, spec-driven filesystem orchestration tool.

It allows you to declaratively describe directory structures, generate plans, diff against reality, safely apply changes, detect drift, lock state, and collaborate using immutable execution plans.

Think Terraform for directory trees.


Features

  • Tree / YAML / JSON / stdin / image-based specs
  • Deterministic planning (seed plan)
  • Immutable plans (seed plan --out plan.json)
  • Safe execution (seed apply plan.json)
  • Sync with deletion (seed sync --dangerous)
  • State locking + heartbeat renewal
  • Partial plans (--target scripts/)
  • Spec inheritance (@include)
  • Variables ({{project_name}})
  • Plugins
  • Checksums & drift detection
  • CI & pre-commit hooks
  • Graphviz execution graphs (--dot)

Install

pip install seed-cli
pip install "seed-cli[image]"   # OCR support

Core Workflow

seed plan dir_structure.tree --out plan.json
seed apply plan.json

Commands

Command Description
plan Generate execution plan
apply Apply spec or plan
sync Apply + delete extras
diff Compare FS vs spec
capture Capture FS to spec
doctor Lint & repair specs
export Export filesystem state or plan
lock Manage state locks
hooks Install git hooks

Example Spec

@include base.tree

scripts/
├── build.py (@generated)
└── notes.txt (@manual)

State & Locking

State is stored in .seed/state.json. Locks are stored in .seed/lock.json.

Locks:

  • TTL-based
  • Auto-renewed during apply
  • Force-unlock available

Partial Plans

seed plan spec.tree --target scripts/

Graphviz

seed plan spec.tree --dot > plan.dot
dot -Tpng plan.dot -o plan.png

Plugins

seed-cli is extensible by default. You can create your own plugins and use them to do any dir modifications, transformations, or anything you can conceive and is not captured in the previous statement.

Note: this is Work In Progress.

Local plugins live in:

.seed/plugins/*.py

Philosophy

seed-cli is:

  • Declarative
  • Deterministic
  • Auditable
  • Safe by default

License

Modified MIT file. Read the LICENSE.md file in this project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seed_cli-1.0.2.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seed_cli-1.0.2-py3-none-any.whl (46.7 kB view details)

Uploaded Python 3

File details

Details for the file seed_cli-1.0.2.tar.gz.

File metadata

  • Download URL: seed_cli-1.0.2.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for seed_cli-1.0.2.tar.gz
Algorithm Hash digest
SHA256 0d41131fc24977c6c875bcee5fa33c1ceccf284518081b60125cd49ff96ea5cd
MD5 fe97424ddf4247a535b669f3520efc55
BLAKE2b-256 531717d9caf01452a09c9a1b3015185b41d35436f18f58f366ca5e26426c3f38

See more details on using hashes here.

File details

Details for the file seed_cli-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: seed_cli-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 46.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for seed_cli-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fcb125bff647a9060a823316eadc3760071c5a48ebbcbf6198917d8e77d8a0dc
MD5 77408a5ba193c296f9134cfe3462dcd5
BLAKE2b-256 cd681a024f80ea3a0eebf9f192094e700e382f298205619c9b81ba8ab3ae685e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page