Skip to content
vic

uncenter/purr

🐈 Unoffical CLI for Catppuccin port developers.

uncenter/purr.json
{
"createdAt": "2024-05-25T03:07:21Z",
"defaultBranch": "main",
"description": "🐈 Unoffical CLI for Catppuccin port developers.",
"fullName": "uncenter/purr",
"homepage": "https://crates.io/crates/catppuccin-purr",
"language": "Rust",
"name": "purr",
"pushedAt": "2025-05-19T04:10:37Z",
"stargazersCount": 22,
"topics": [
"catppuccin",
"cli",
"rust",
"userstyles"
],
"updatedAt": "2025-10-06T13:59:41Z",
"url": "https://github.com/uncenter/purr"
}

An unofficial CLI for Catppuccin developers; query data about Catppuccin ports and userstyles, star counts of the organization as a whole or individual repositories, the Whiskers port creation tool migration, or even initialize a new port/userstyle from the upstream template.

Terminal window
cargo install catppuccin-purr
# or
cargo install --git https://github.com/uncenter/purr.git

purr is available as an AUR package. It can be installed with an AUR helper (e.g. paru):

Terminal window
paru -S purr
nix run github:uncenter/purr
purr <COMMAND> [-h | --help] [-V | --version]
purr query [--for <PORT>] [-g | --get] [-c | --count] [--userstyles | --no-userstyles | --only-userstyles]

Query the ports.yml data source. With no arguments, all ports are displayed. The --count and userstyles-related flags work for all of the query subcommands.

Examples
  • List all ports.

    purr query
  • List all ports excluding userstyles.

    purr query --no-userstyles
  • List all userstyles.

    purr query --only-userstyles
  • Count the number of ports.

    purr query --count
  • List the names of all ports.

    purr query --get name
  • List the current maintainers of the nvim port.

    purr query --for nvim --get current-maintainers
purr query maintained [--by <NAME>] [-n | --not] [-c | --count]
Examples
  • List maintained ports.

    purr query maintained
  • Count the number of maintained ports.

    purr query maintained --count
  • List unmaintained ports.

    purr query maintained --not
  • Count the number of unmaintained ports.

    purr query maintained --not --count
  • List ports maintained by <username>.

    purr query maintained --by "<username>"
  • Count the number of ports maintained by <username>.

    purr query maintained --by "<username>" --count
  • List ports not maintained by <username>.

    purr query maintained --by "<username>" --not
  • Count the number of ports not maintained by <username>.

    purr query maintained --by "<username>" --not --count
purr query has [PROPERTIES] [-n | --not] [-c | --count]

Properties:

  • --name <NAME>
  • --category <CATEGORIES>
  • --upstreamed
  • --platform <PLATFORM>
  • --icon <ICON>
  • --color <COLOR>
  • --alias
  • --url <URL>
Examples
  • List ports with color set to mauve.

    purr query has --color mauve
  • Count the number of ports that have color set to mauve.

    purr query has --color mauve --count
  • Count the number of ports that have color set to anything other than mauve.

    purr query has --color mauve --not --count
  • List ports that do not have icon defined.

    purr query has --icon --not
  • List ports with categories of application_launcher and system.

    purr query has --category application_launcher,system
purr query stars [--for <REPOSITORY>] [--archived]
Examples
  • Get the total stars for all repositories across the organization.

    purr query stars
  • Get the total stars for all non-archived repositories across the organization.

    purr query stars --archived false
  • Get the total stars for only archived repositories across the organization.

    purr query stars --archived true
  • Get the stars for a repository called <repository>.

    purr query stars --for "<repository>"
purr query whiskers [--is <STATE>] [-n | --not] [-c | --count | -p | --percentage]
Examples
  • Get the overall statistics of the Whiskerification process.

    purr query whiskers
  • List Whiskerified repositories.

    purr query whiskers --is true
  • List non-Whiskerified repositories.

    purr query whiskers --is false
  • List repositories Whiskers is not applicable for.

    purr query whiskers --is not-applicable
  • List repositories Whiskers is applicable for.

    purr query whiskers --is not-applicable --not

The init command accepts each value (name, categories, etc.) via arguments, though if not provided a series of prompts will be displayed instead.

purr init <TEMPLATE> [PROPERTIES]
TemplateAvailable Properties/Flags
portname, url
userstylename, category, icon, color, url
purr whiskerify <PATH> [-o | --output <PATH>]

Whiskerify a file by replacing Catppuccin colors and names with Tera expressions. Prints the output or writes to the --output file path if given.

[MIT]!(LICENSE)