Skip to content

Roadmap

Completed

PhaseFeatureWhat Was Done
1CLI RewriteRewrote bash script → Bun/TypeScript CLI with .dotf output
2BackupReal file copies in structured directories with --archive support
3Sensitivity Scan27+ detection patterns, three-stage pipeline, auto-redaction
4RestoreInteractive picker, dry-run, pre-restore snapshots, conflict resolution
5Diff Against LiveColor-coded backup vs machine comparison, --section filter
6Config RegistrySingle source of truth for all config paths — replaced 11 collector files
7Multi-OSmacOS, Linux, Windows path resolution with per-platform registry entries
Status commandQuick backup summary with age, modified count, file list
Slim mode--slim flag for AI-friendly truncated snapshots
Parallel collectorsPromise.allSettled for independent collectors
Archive export--archive flag for .tar.gz backup output
Timestamped reports<hostname>-YYYYMMDDHHMMSS.dotf naming

Current Stats

  • 8 commands: collect, backup, scan, restore, diff, status, compare, list
  • 23 registry entries: across 8 categories
  • 27+ scan patterns: HIGH, MEDIUM, LOW severity
  • 102 tests: 307 assertions, 0 failures
  • 3 platforms: macOS, Linux, Windows

Next Up

dotfiles init — GitHub Template Flow

Guided onboarding for new users:

bash
bunx @dotformat/cli init
# → "Create a private GitHub repo? (y/n)"
# → gh repo create my-dotfiles --private --template dotformat/template
# → cd my-dotfiles && dotfiles backup
# → git add . && git commit -m "initial backup" && git push

New machine flow:

bash
git clone github.com/you/my-dotfiles
cd my-dotfiles
dotfiles restore --pick

One-line remote install:

bash
curl -fsSL https://raw.githubusercontent.com/you/my-dotfiles/main/install.sh | bash

Rules:

  • We never store user data — their GitHub is the storage
  • Zero cloud, zero accounts beyond what they already have
  • gh CLI required for repo creation (manual git init fallback available)

Plugin System

Safe extension points for community collectors and customization:

  • Plugin adds registry entries and optional collector hooks
  • Plugin declares category and destination mapping
  • Plugin participates in scan/redaction pipeline
  • Plugin works without changing core command surface

Example:

bash
dotfiles add ~/.config/starship.toml   # Future: adds entry to local registry

Ideas Backlog

IdeaDescriptionPriority
.local override patternSeparate shared vs machine-specific configsLow
--assume-unchangedSkip sensitive template files in GitHub flowLow
Profile switchingdotfiles use work / dotfiles use personalMedium
EncryptionEncrypt sensitive files with passphrase before storingMedium
Shallow clone + submodulesFast remote installLow
Stream-based file copyBun.file().stream() for large backupsLow
Binary formatOptional --format binary for .dotf filesLow
Pluggable output--format json|yaml|toml|dotf via registry layerMedium
bun build --compileStandalone binary distribution (no Bun required)Medium
License changeMIT when going public

Technical Debt

  • compare always enables color output (should respect TTY)
  • diff only compares files in backup — no reverse discovery for new-on-machine files
  • scan command doesn't support --no-redact (always reports all findings)
  • Windows platform paths defined but not tested on real Windows machines