Skip to content

instantOS/instantCLI

Repository files navigation

InstantCLI

License: GPL v2 Rust

A powerful, Rust-based command-line tool for managing dotfiles, game saves, system diagnostics, and instantOS configurations. InstantCLI provides a decentralized approach to dotfile management that respects user modifications while enabling easy theme and configuration switching.

Features

Dotfile Management

  • Multi-repository support with priority-based overlaying
  • Smart modification detection using hashes to protect user changes
  • Subdirectory management for organizing different configuration sets like themes

Game Save Management

  • Centralized game save backup and restore
  • Support for popular free cloud storage services
  • Automatic save location detection

Application Launcher

  • Launch desktop applications
  • Fuzzy finding
  • Frecency (Higher ranking for frequently and recently used apps)
  • Based on reusing Terminal windows using scratchpads

Installation

Quick install

curl -fsSL https://raw.githubusercontent.com/instantOS/instantCLI/main/scripts/install.sh | sh

Set INSTALL_DIR to override the destination directory (defaults to a writable user bin in your PATH, otherwise /usr/local/bin).

Check before you pipe :)

Cargo

cargo install ins

AUR

yay -S ins

From Source

# Clone the repository
git clone https://github.com/your-username/instantCLI.git
cd instantCLI

# Build and install locally
just install

# Or install system-wide (requires sudo)
just rootinstall

Dependencies

  • Rust
  • Git
  • FZF
  • Restic
  • SQLite3

Arch

sudo pacman -Sy git fzf restic sqlite --needed

Ubuntu

sudo apt update; sudo apt install -y git fzf restic libsqlite3-dev sqlite3

Dotfile Management

Dotfile Structure

ins expects dotfile repositories to have a specific structure:

your-dotfiles-repo/
├── instantdots.toml          # Repository metadata
├── dots/                     # Main dotfiles directory
│   ├── .config/
│   │   ├── kitty/
│   │   │   └── kitty.conf
│   │   └── nvim/
│   │       └── init.vim
│   └── .bashrc
├── mytheme/                   # Optional: theme-specific configs
│   └── .config/
│       └── kitty/
│           └── theme.conf
└── myothertheme/              # Optional: theme-specific configs
    └── ...

Development

Building

# Debug build
cargo build

# Release build
cargo build --release

# Run with debug logging
cargo run -- --debug <command>

Testing

# Run all tests
cargo test

# Run integration tests
just test

About

Consolidating lots of instantOS stuff into a single CLI

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages