Skip to main content

KoalaKeys

A simple tool to create and manage portable keyboard shortcut cheat sheets.

Demo: Check out the live demo to see a small collection of cheat sheets created with this project.

Overview

KoalaKeys generates and organizes portable, interactive HTML cheat sheets for keyboard shortcuts. It's designed for developers, designers, and power users who want to keep their essential shortcuts easily accessible.

Quick Start:

  1. Run uvx koalakeys init to scaffold a project.
  2. Run cd koalakeys.
  3. Add or edit YAML files in the cheatsheets/ directory.
  4. Run uvx koalakeys generate.

For detailed YAML formatting instructions, see the YAML Cheat Sheet Specification Guide.

Screenshots

The built-in themes: catppuccin, dracula, gruvbox, nord, rose-pine, solarized

Features

  • Generate HTML cheat sheets from YAML files
  • Interactive keyboard layout with real-time highlighting
  • Six built-in themes (catppuccin, dracula, gruvbox, nord, rose-pine, solarized) plus user themes and custom CSS
  • Categorized shortcuts with descriptions
  • Index page for quick access to all cheat sheets
  • Search functionality
  • Support for different keyboard layouts and system mappings

Demo and Examples

A live demo instance is available, showcasing a selection of cheat sheets:

Explore the demo to see how KoalaKeys works and to get ideas for creating custom cheat sheets. The demo repository also contains example YAML files that can be used as templates for new cheat sheets.

Available Systems and Keyboards

Systems

  • Darwin (macOS)
  • Linux
  • Windows

Keyboard Layouts

  • US
  • UK
  • DE (German)
  • FR (French)
  • ES (Spanish)
  • DVORAK

Requirements

  • Python 3.9+
  • uv

Installation

Run KoalaKeys directly with uv, no need to clone the repository:

uvx koalakeys init        # scaffold ./koalakeys/cheatsheets/ with an example sheet

Or install it on your PATH:

uv tool install koalakeys     # or: pipx install koalakeys

From source (for development)

  1. Clone the repository and install dependencies:

    git clone https://github.com/rtuszik/KoalaKeys
    cd KoalaKeys
    uv sync --locked
    
  2. Run via uv run koalakeys ....

Usage

KoalaKeys is a multi-command CLI. generate and validate operate on the current directory: they read cheatsheets/ and generate writes to output/ (or CHEATSHEET_OUTPUT_DIR if set). init creates the project in its path argument.

Command What it does
koalakeys init [path] Scaffold a new project directory with an example cheat sheet. Defaults to ./koalakeys; use . for the current directory. Pass --force to overwrite existing files.
koalakeys generate Generate HTML for every YAML file in cheatsheets/, plus an index page.
koalakeys validate [file] Validate cheat sheet YAML. Checks all of cheatsheets/ by default, or a single file. Exits non-zero on failure (CI-friendly).

Typical first run (with koalakeys on your PATH; otherwise prefix each command with uvx):

koalakeys init
cd koalakeys
koalakeys generate

Then open output/index.html to view the cheat sheet collection. For detailed YAML formatting, see the YAML Cheat Sheet Specification Guide.

Output directory (optional)

By default cheat sheets are written to output/ in the current directory. To change this, set CHEATSHEET_OUTPUT_DIR (e.g. in a .env file):

CHEATSHEET_OUTPUT_DIR=path/to/your/output/directory

Theming

Set a theme per cheat sheet with a single key:

theme: dracula

See the YAML Cheat Sheet Specification Guide for the built-in themes, user-theme authoring, and custom CSS.

Schema

Validate your YAML with the published JSON Schema:

  • Public URL: https://rtuszik.github.io/KoalaKeys/schema/cheatsheet.schema.json

  • Per-file modeline (first line in each YAML):

    # yaml-language-server: $schema=https://rtuszik.github.io/KoalaKeys/schema/cheatsheet.schema.json
    
  • Neovim yamlls mapping (optional):

    require('lspconfig').yamlls.setup({
      settings = {
        yaml = {
          schemas = {
            ["https://rtuszik.github.io/KoalaKeys/schema/cheatsheet.schema.json"] = "cheatsheets/*.yaml",
          },
        },
      },
    })
    

Contributing

Contributions are welcome! Feel free to submit issues, feature requests, or pull requests.

License

This project is licensed under the terms of the GPLv3.

Metadata

Release files for koalakeys 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for koalakeys 1.0.0
File Size Uploaded Provenance Actions
koalakeys-1.0.0.tar.gz 29.9 kB With provenance Details for koalakeys-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for koalakeys 1.0.0
File Interpreter ABI Platform Actions
koalakeys-1.0.0-py3-none-any.whl Python 3 none any Details for koalakeys-1.0.0-py3-none-any.whl

Total release size: 67.7 kB

Release files / koalakeys-1.0.0.tar.gz

Download URL koalakeys-1.0.0.tar.gz
Size 29.9 kB
Tags Source
SHA-256 checksum
How to use checksums
158d81550934382f78536e85831abb6f08b2442da0451521e4b9e6a6a3da9a66
BLAKE2b-256 checksum
How to use checksums
9a8742c88d667735c640a22f05a650246f070994d78e0fb4a4ed5000e4bbede4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / koalakeys-1.0.0-py3-none-any.whl

Download URL koalakeys-1.0.0-py3-none-any.whl
Size 37.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52951fe4238cce778a443c3da0455b1ac10afdcc612e6c6a2ef44db36ef2fb84
BLAKE2b-256 checksum
How to use checksums
f995e06fc3adfb06bb66f719b5dc69e51ef9d4938e19d91dc395379b3f42ad5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for koalakeys 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for koalakeys-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page