Odin is a Windows-first developer environment management CLI designed to simplify the capture, restoration, and synchronization of workstation configurations. It allows developers to snapshot tools, package managers, shell profiles, Git settings, VS Code extensions, terminal settings, environment variables, and PATH state, enabling seamless reproducibility across machines.
Key Features:
Snapshot & Restore: Capture complete developer environments and restore them with safety checks and dry-run capabilities.
GitHub Sync: Backup snapshots to private GitHub repositories for secure, version-controlled storage.
Process Monitoring: Interactive dashboard for monitoring processes and ports, with tools to identify and kill processes safely.
Port Management: List listening ports and manage conflicts with detailed process information.
Diagnostics & Health Checks: Analyze PATH entries, missing SDKs, and potential conflicts to maintain a healthy development environment.
Time-Machine History: View snapshot history, compare changes over time, and rollback to previous states for testing or recovery.
Audience & Benefit:
Ideal for developers, DevOps engineers, and teams who need consistent, reproducible workstation environments. Odin reduces setup time when switching machines, minimizes configuration errors, and provides a robust backup system for development workflows. It empowers users to maintain control over their tools and settings while ensuring smooth collaboration and recovery from environmental issues.
Available via winget for easy installation and updates.
README
Odin
Odin is a Windows-first developer environment management CLI. It snapshots the tools, package managers, shell profiles, Git settings, VS Code extensions, terminal settings, environment variables, and PATH state needed to recreate a workstation.
odin snapshot Capture current machine state into ~/.odin
odin restore Reinstall and restore from the latest snapshot
odin diff Compare the live machine against the last snapshot
odin export Generate PowerShell bootstrap and restore scripts
odin init Initialize ~/.odin/config.yaml
odin config Configure GitHub and show local configuration
Monitoring & Diagnostics
odin dashboard Show snapshot status and next commands (interactive TUI)
odin doctor Diagnose broken PATH entries, missing SDKs, and conflicts
odin ports List all listening ports with process information (JSON support)
odin ps Interactive process dashboard (htop-style with live metrics)
odin kill Kill processes by port or PID with safety checks
Time Machine & History
odin history View snapshot history with colored timeline
odin rollback Restore environment to a previous snapshot
Sync & Updates
odin sync Commit and push snapshots to a GitHub repository
odin backup Alias for `odin sync` (online backup to Git)
odin update Check for and install the latest Odin release
Odin tracks all snapshots and enables rolling back to previous states:
# View the history of snapshots
odin history
# View detailed changes between snapshots
odin history --detailed
# Rollback to a previous snapshot (dry-run by default)
odin rollback snapshot-20250313-120000
# Apply the rollback
odin rollback snapshot-20250313-120000 --apply
This enables powerful workflows like:
Quickly reverting environment changes
Comparing machine state across time periods
Auditing which packages were added/removed
Testing environment configurations before applying
Windows Integrations
Current integrations include:
winget
Chocolatey
Scoop
PowerShell profile discovery
Git config discovery and restore
VS Code extension discovery and restore
Windows Terminal settings discovery
environment variables and PATH analysis
Configuration
Odin stores local configuration in %USERPROFILE%\.odin\config.yaml.
An example configuration is available in examples/odin.yaml.
odin init
odin config show
Dashboard
odin dashboard opens a Ratatui terminal dashboard when running in an interactive terminal. It shows snapshot metadata, developer tools, package managers, GitHub sync state, and health indicators. Press q or Esc to quit.
Install
winget (recommended)
winget install AsimAftab.Odin
odin is on PATH immediately, no SmartScreen warning, automatic updates via winget upgrade, and clean uninstall via winget uninstall AsimAftab.Odin. The workspace at %USERPROFILE%\.odin is created automatically on first use; run odin init only if you want the interactive setup with PATH validation and dependency checks.
PowerShell (CI/automation)
Bootstrap from GitHub Releases:
powershell -ExecutionPolicy Bypass -File .\scripts\bootstrap.ps1 -Repository OWNER/REPO -Scope User
.github/workflows/ci.yml runs format checks, clippy, tests, and release build.
.github/workflows/release.yml builds odin.exe and the MSI installer, creates a GitHub Release, and uploads:
odin--x86_64.msi (MSI installer)
odin.exe
odin-windows-x64.zip
install.ps1, uninstall.ps1, bootstrap.ps1
checksums.txt
Development
cargo fmt
cargo test
cargo run -- snapshot
cargo run -- update --check
The codebase is organized around command handlers, services, typed models, utility code, and Windows-specific integrations so Linux/macOS support and future plugin/Sentinel AI integrations can be added behind stable service interfaces.
Key Features
⨠Real-time Process Monitoring: Interactive process dashboard with sorting, filtering, and resource monitoring
š Port Management: List listening ports, identify processes, and kill them safely
ā” Auto-Update: Check and install latest releases from GitHub with one command
š¾ Snapshot & Restore: Capture and restore complete developer environment
š GitHub Sync: Backup configuration to private GitHub repositories
š„ Diagnostics: Health checks for PATH, SDKs, package managers, and VS Code
šØ Beautiful CLI: Colorful ASCII art banner with command guidance
Docs
Features Guide - Complete feature documentation with examples