2.5 KiB
2.5 KiB
Feature Inventory
Core Features
enter- SSH into a named environment target with optional tmux auto-attach
dev- create, exec into, attach to, list, stop, remove, and respawn development containers
dotfiles- clone the dotfiles repo, link/unlink/relink configs, undo link transactions, inspect status, sync modules, clean broken links, edit packages, and interact with repo state
bootstrap- run machine bootstrap profiles with packages, env validation, hostname/locale/shell setup, ssh-keygen,
runcmd, config linking, and post-link hooks
- run machine bootstrap profiles with packages, env validation, hostname/locale/shell setup, ssh-keygen,
package- install/list/remove binary packages defined in the manifest
sync- inspect git project health, fetch remotes, and summarize project state
completion- dynamic zsh completion generation and installation
Supported Flows
Access a host
- Resolve
[user@]namespace@platform - Expand platform host template or configured target override
- Optionally warn about missing remote terminfo
- Open SSH, optionally into tmux
Start a dev container
- Resolve runtime (
dockerorpodman) - Normalize image shorthand
- Apply labels and common host mounts
- Start the container
flow dev connectattaches through tmux or falls back to direct exec
Manage dotfiles
- Clone dotfiles repo
- Optionally sync external module repos
- Resolve shared + profile packages
- Validate target conflicts
- Snapshot replaced targets
- Apply links transactionally
- Undo from persisted transaction state if needed
Bootstrap a machine
- Load and validate a profile
- Detect or select the package manager
- Check required environment variables
- Apply hostname/locale/shell prerequisites
- Install profile packages
- Run package hooks
- Generate SSH keys
- Run
runcmd - Link dotfiles for the profile
- Run post-link hooks
Command Surface Review
Keep
enterdevdotfilesbootstrappackagesynccompletion
Keep But Treat As Convenience Aliases
dotfiles sync- effectively
repo pull+modules sync
- effectively
dotfiles relink- effectively
unlink+link
- effectively
sync summary- effectively
sync check --no-fetch
- effectively
Commands That Need Follow-Up Product Decisions
package remove- today it forgets install state but does not uninstall files; either rename it to
forgetor implement real uninstall semantics
- today it forgets install state but does not uninstall files; either rename it to
dotfiles edit- current auto-commit/push behavior is powerful but risky; it may deserve an explicit confirm-or-dry-run mode before wider use