https://github.com/instantos/instantcli
Consolidating lots of instantOS stuff into a single CLI
https://github.com/instantos/instantcli
Last synced: 3 months ago
JSON representation
Consolidating lots of instantOS stuff into a single CLI
- Host: GitHub
- URL: https://github.com/instantos/instantcli
- Owner: instantOS
- License: gpl-2.0
- Created: 2025-09-07T08:27:53.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-04-07T12:02:27.000Z (3 months ago)
- Last Synced: 2026-04-07T13:05:37.525Z (3 months ago)
- Language: Rust
- Size: 5.59 MB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# InstantCLI
[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
[](https://www.rust-lang.org/)
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
```bash
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
```bash
cargo install ins
```
### AUR
```bash
yay -S ins
```
### From Source
```bash
# 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
```bash
sudo pacman -Sy git fzf restic sqlite --needed
```
#### Ubuntu
```bash
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
```bash
# Debug build
cargo build
# Release build
cargo build --release
# Run with debug logging
cargo run -- --debug
```
### Testing
```bash
# Run all tests
cargo test
# Run integration tests
just test
```