A fast, minimal CLI for storing and retrieving anything—API keys, passwords, tokens, notes, secrets.
- Simple: Store and retrieve data with key-value pairs
- Secure: Optional encryption using age (X25519)
- Fast: Minimal dependencies, quick operations
- Cross-platform: Works on Linux, macOS, Windows
go install github.com/oreoluwa-bs/zoop@latestDownload the latest release from GitHub Releases.
Make the binary executable and move to your PATH:
chmod +x zoop
sudo mv zoop /usr/local/bin/git clone https://github.com/oreoluwa-bs/zoop.git
cd zoop
go build -o zoop main.go- Initialize Zoop:
zoop initThis creates ~/.zoop/ directory with config and keys.
- Store a secret:
zoop set my-api-key sk-1234567890abcdef- Retrieve it:
zoop get my-api-keyzoop init [--encrypt] [--key-file PATH] [--force]: Initialize Zoop. Generates encryption keys if encryption enabled.zoop set KEY VALUE: Store a value with the given key.zoop get KEY: Retrieve the value for the given key.zoop delete KEY: Delete the value for the given key.zoop config set KEY=VALUE: Set a configuration option.zoop config get KEY: Get a configuration value.zoop config list: List all configuration values.zoop migrate [decrypt|encrypt]: Migrate data between encrypted and unencrypted storage.zoop version: Show version information.
Zoop uses a config file at ~/.zoop/config.yaml. Default settings:
data_file:~/.zoop/store.jsonkey_file:~/.zoop/key.txtencryption:false
You can override with environment variables prefixed with ZOOP_, e.g., ZOOP_ENCRYPTION=true.
By default, encryption is disabled. To enable:
zoop init --encryptOr after init:
zoop config set encryption=trueThen migrate existing data:
zoop migrate encryptmake buildmake test# Linux AMD64
GOOS=linux GOARCH=amd64 go build -o zoop-linux-amd64 main.go
# macOS AMD64
GOOS=darwin GOARCH=amd64 go build -o zoop-darwin-amd64 main.go
# Windows AMD64
GOOS=windows GOARCH=amd64 go build -o zoop-windows-amd64.exe main.goMIT