Skip to content

A fast, minimal CLI for storing and retrieving you store and retrieve anything—API keys, passwords, tokens, notes, secrets

License

Notifications You must be signed in to change notification settings

oreoluwa-bs/zoop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zoop

A fast, minimal CLI for storing and retrieving anything—API keys, passwords, tokens, notes, secrets.

Features

  • 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

Installation

Option 1: Go Install (Recommended)

go install github.com/oreoluwa-bs/zoop@latest

Option 2: Download Binary

Download the latest release from GitHub Releases.

Make the binary executable and move to your PATH:

chmod +x zoop
sudo mv zoop /usr/local/bin/

Option 3: Build from Source

git clone https://github.com/oreoluwa-bs/zoop.git
cd zoop
go build -o zoop main.go

Quick Start

  1. Initialize Zoop:
zoop init

This creates ~/.zoop/ directory with config and keys.

  1. Store a secret:
zoop set my-api-key sk-1234567890abcdef
  1. Retrieve it:
zoop get my-api-key

Usage

Commands

  • zoop 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.

Configuration

Zoop uses a config file at ~/.zoop/config.yaml. Default settings:

  • data_file: ~/.zoop/store.json
  • key_file: ~/.zoop/key.txt
  • encryption: false

You can override with environment variables prefixed with ZOOP_, e.g., ZOOP_ENCRYPTION=true.

Encryption

By default, encryption is disabled. To enable:

zoop init --encrypt

Or after init:

zoop config set encryption=true

Then migrate existing data:

zoop migrate encrypt

Development

Build

make build

Test

make test

Cross-platform Builds

# 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.go

License

MIT

About

A fast, minimal CLI for storing and retrieving you store and retrieve anything—API keys, passwords, tokens, notes, secrets

Resources

License

Stars

Watchers

Forks

Packages

No packages published