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.3.tar.gz (58.6 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.3-py3-none-any.whl (62.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: seed_cli-1.0.3.tar.gz
  • Upload date:
  • Size: 58.6 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.3.tar.gz
Algorithm Hash digest
SHA256 34df84c8f89a5f1bb6675bc641f6a88346674e6d817a6d42417eb5bdd9dbb22f
MD5 b63ec73a740eb9032db484e375c3dbf6
BLAKE2b-256 36b746344af722e259588a67988f2f692727429ca24d5df759d2a8ce28d5bcf4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: seed_cli-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 62.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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 57cc374c3ae236895f5d26d4755eb2e1215e38259ad3f8b7c3cc001d43ba9d25
MD5 cc68ef467d19a1edecc445d5f421533c
BLAKE2b-256 8ea8354016c1278a0cdba64b3b317779d7f02c37bf77f46ccabadc632d1ae5c6

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