# Skate

> A local personal key-value store CLI for saving and retrieving text or binary data, with named databases and pipe-friendly output.

Stars: 1.9k · Language: Go · License: MIT · Categories: Data

- Repository: https://github.com/charmbracelet/skate
- Page: https://www.trmn.sh/tools/skate

## Install

- Homebrew: `brew tap charmbracelet/tap && brew install charmbracelet/tap/skate`
- Pacman: `pacman -S skate`
- Go: `go install github.com/charmbracelet/skate@latest`

## Overview

Skate is a command-line key-value store for saving and retrieving arbitrary data, including binary files and Unicode keys and values. Core commands are `skate set <key> <value>`, `skate get <key>`, and `skate list`. Binary data goes in and out through shell redirection, for example `skate set profile-pic < my-cute-pic.jpg` and `skate get profile-pic > here-it-is.jpg`. As of v1.0.0, Skate operates locally only and no longer syncs to the Charm Cloud.

Data can be split into separate databases using an `@db` suffix on the key, such as `skate set secret-boss-key@work-stuff password123` or `skate list @work-stuff`. Databases are created on demand, and `skate list-dbs` shows the existing ones. `skate list` has flags for keys only (`-k`), values only (`-v`), reverse order (`-r`), a custom delimiter (`-d`), and showing binary values (`-b`). Its output can be piped into tools like `xargs`.

By default, databases are kept in the operating system's user data directory. You can change the location with the `--store` flag or the `SKATE_STORE` environment variable. The README suggests using it to keep tokens and passwords out of shell scripts (for example `$(skate get gh_token)` inside a `curl` call) and to hold script-managed data such as bookmarks. It suits developers and shell users who want simple persistent storage without running a database.

### Installation

```bash
# via Homebrew
brew tap charmbracelet/tap && brew install charmbracelet/tap/skate
```

```bash
# via Pacman
pacman -S skate
```

```bash
# via Go
go install github.com/charmbracelet/skate@latest
```

## Alternatives

- [jqp](https://www.trmn.sh/tools/jqp.md): A terminal UI for running jq queries interactively against JSON or NDJSON input, using the gojq implementation, with themes and query history. (Go, 2.9k stars)
- [qo](https://www.trmn.sh/tools/qo.md): TUI for querying JSON and CSV files with SQL syntax, reads from stdin and outputs to stdout (Go, 401 stars)
- [gojq](https://www.trmn.sh/tools/gojq.md): Pure Go implementation of jq command-line JSON processor with arbitrary-precision arithmetic and YAML support (Go, 3.8k stars)
- [lazysql](https://www.trmn.sh/tools/lazysql.md): Cross-platform TUI database management tool for MySQL, PostgreSQL, SQLite, and MSSQL with SQL editor and table operations. (Go, 4.4k stars)
- [jid](https://www.trmn.sh/tools/jid.md): Interactive JSON explorer that takes piped input and lets you drill down with dot-path or JMESPath queries, with tab completion and suggestions. (Go, 7.2k stars)

---

Canonical: https://www.trmn.sh/tools/skate
