Skip to content

ochairo/wand

Repository files navigation

🪄 Wand

A package manager with shim-based version control for CLI tools, GUI apps, and dotfiles.

Version Tests Security Go Report Card OpenSSF Scorecard License

🚧 Early Development

This project is in active development and should be considered experimental. Features may change, break, or be removed without notice.

FeaturesFormulasQuick StartThird-Party IntegrationDocumentation

✨ Features

  • CLI Tools with Version Management: Install multiple versions, switch per-project
  • GUI Applications: Single-version installs for desktop apps
  • Dotfiles Management: Git-based dotfile repository with symlink mapping
  • Declarative Configuration: Wandfile for system-wide tool configuration
  • Per-Project Overrides: .wandrc files for project-specific version pinning

🔮 Supported Formulas

🚀 Quick Start

# Installation
curl -sSL https://raw.githubusercontent.com/ochairo/wand/main/scripts/install.sh | bash
# List available versions
wand list jq --remote

# Install latest version
wand install jq

# Install specific version
wand install jq@1.7.1

# Check installed versions
wand list jq

# Switch versions
wand switch jq@1.6.0

# Show active version details
wand info jq

🔌 Third-Party Integration

Wand provides a public API for building custom integrations like TUIs, web dashboards, and IDE extensions.

Use Cases

  • Terminal UIs (TUI): Build interactive package browsers with Bubble Tea or tview
  • Web Dashboards: Create web-based package management interfaces
  • IDE Extensions: Integrate wand into VS Code, IntelliJ, or other editors
  • CI/CD Tools: Automate package installations in build pipelines
  • Custom Workflows: Build domain-specific package management tools

Quick Example

import "github.com/ochairo/wand/pkg/client"

// Initialize client
c, _ := client.New("")

// Install a package
c.Install("jq", "1.7.1")

// List installed packages
packages, _ := c.ListPackages()

// Get package details
formula, _ := c.GetFormula("jq")

See pkg/README.md for complete API documentation and examples/.

🏛️ Documentation

  • User Guide - Getting started and usage instructions
  • Public API - Programmatic API for third-party integrations
  • Contributing - Development setup and adding packages



Report BugRequest FeatureDocumentation

Made with ❤︎ by ochairo

About

🪄 Package manager

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors