seed-cli · PyPI
Skip to main content<br>Switch to mobile version
Warning
You are using an unsupported browser, upgrade to a newer version.
Warning
Some features may not work without JavaScript. Please try enabling it if you encounter problems.
Search PyPI
Search
seed-cli 1.0.11
pip install seed-cli
Copy PIP instructions
Latest release
Released:<br>Jun 7, 2026
The perfect pair for the `tree` program. Seed creates, updates and deletes file and folder structures in your codebase.
Navigation
Verified details
These details have been verified by PyPI<br>Maintainers
isaac_ar
Unverified details
These details have not been verified by PyPI<br>Project links
Issues
Repository
Meta
License: MIT License (ModifiedMIT)
Author: Isaac AR
Maintainer: Isaac AR
Tags
directory
filesystem
orchestration
seed
terraform
tree
Requires: Python >=3.10
Provides-Extra:<br>dev<br>, image<br>, ui
Classifiers
Development Status
4 - Beta
Intended Audience
Developers
License
OSI Approved :: MIT License
Operating System
OS Independent
Programming Language
Python :: 3
Python :: 3.10
Python :: 3.11
Python :: 3.12
Topic
Software Development :: Build Tools
Report project as malware
Project description
seed-cli
seed is a Terraform-inspired, spec-driven filesystem orchestration tool.
It captures directory trees, plans changes, applies them safely, syncs drift,<br>scaffolds projects from reusable templates, and can also execute<br>manifest-driven repository or service maintenance.
Think Terraform for directory trees , plus template scaffolding and<br>workspace maintenance .
Highlights
Multiple spec inputs: .tree, .seed, YAML, JSON, DOT, image OCR, and stdin
Deterministic planning with exportable plans: seed plan spec.seed --out plan.json
Safe execution of immutable plans: seed apply plan.json
Drift workflows: diff, sync, match, snapshots, and spec history
Template variables in paths and content: / and {{var}}
Project-local template registration under .seed/templates/
Reusable template registry with versions, locking, content sources, and built-in templates
Copier-style template config support: questions, defaults, answers files, excludes, skip-if-exists, and gated tasks
Manifest-driven repository/service/system maintenance with seed maintain
Structure locking, watch mode, state locks, hooks, Graphviz export, and shell completion
Install
pip install seed-cli<br>pip install "seed-cli[image]" # OCR/image parsing<br>pip install "seed-cli[ui]" # rich terminal output
Python >=3.10 is required.
Quick Start
Capture an existing directory, preview a plan, then apply it:
seed capture --out project.tree<br>seed plan project.tree --out plan.json<br>seed apply plan.json
For direct spec execution:
seed register project.tree<br>seed apply project.tree<br>seed diff project.tree
For repository or service automation:
seed maintain maintenance.yml<br>seed maintain maintenance.yml --execute
Commands
seed --help groups commands by workflow so related tasks are easier to scan.
Group<br>Commands<br>Description
Plan & Apply<br>plan, diff, apply, sync, match<br>Preview, compare, and apply filesystem changes
Templates<br>register, create, templates (template)<br>Register, instantiate, and manage reusable specs
State & History<br>capture, revert, specs, lock<br>Capture state, recover snapshots, inspect history, and enforce structure versions
Maintenance<br>doctor, maintain, hooks<br>Lint specs, run repository/service maintenance, and install hooks
Export & Utilities<br>export, utils<br>Export trees/plans/DOT output and run helper tools
Core Workflow
Immutable Plans
seed plan dir_structure.tree --out plan.json<br>seed apply plan.json
seed apply also accepts a spec directly:
seed apply dir_structure.tree
When you apply a spec with template placeholders such as / or<br>features/.ts, seed apply<br>first runs seed register semantics: it writes the supporting files under<br>.seed/templates/ and .seed/templates/project/, then removes any stale<br>literal placeholder paths like features// left behind by older runs.
Drift Detection
seed diff dir_structure.tree<br>seed sync dir_structure.tree --dangerous<br>seed match dir_structure.tree --dangerous
sync deletes extras not in the spec. match also creates missing paths while<br>respecting directories marked with ....
Partial Plans
seed plan dir_structure.tree --target scripts/<br>seed plan dir_structure.tree --targets "services/*"<br>seed plan dir_structure.tree --target-mode exact
Spec Syntax
Use .tree for simple filesystem specs, or .seed when you want the same tree-shaped format plus richer inline metadata such as kinds, tags, and URLs.
Basic Example
@include base.tree
scripts/<br>├── build.py @generated<br>├── notes.txt @manual<br>├── cache/ ...<br>└── docs/ ?
Markers
@include file.tree: include another spec
@generated: generated file
@manual: manually maintained file
?: optional file or directory
...: allow extras inside a directory
: template placeholder in a path segment or filename
{{var}}: variable interpolation in file contents
.seed also...