id = "cheat" name = "cheat" homepage = "https://github.com/cheat/cheat" description = "cheat allows you to create and view interactive cheatsheets on the command-line." executables = ["cheat"] [dotfiles] # internal/config/paths.go, Paths(): $CHEAT_CONFIG_PATH wins outright; failing # that the search order on aix/android/darwin/dragonfly/freebsd/illumos/ios/ # linux/netbsd/openbsd/plan9/solaris is $XDG_CONFIG_HOME/cheat/conf.yml, # $HOME/.config/cheat/conf.yml, $HOME/.cheat/conf.yml, /etc/cheat/conf.yml, and # on windows it is %APPDATA%\cheat\conf.yml then %PROGRAMDATA%\cheat\conf.yml. # INSTALLING.md says the same in prose: "By default, the config file is assumed # to exist on an XDG-compliant configuration path like ~/.config/cheat/conf.yml". # # The XDG lookup is a real $XDG_CONFIG_HOME read, so it is [configHome]; macOS # takes the same dotted path, not ~/Library. %APPDATA% is a location of its own # and keeps its literal spelling. The system-wide /etc and %PROGRAMDATA% copies # are not user-level and are not listed. paths = [ "[configHome]/cheat/conf.yml", "~/.cheat/conf.yml", "%APPDATA%/cheat/conf.yml", ] exclude = [] # cheat reads and writes plain-text cheatsheets; it authenticates against # nothing. secret = [] # Read once at startup on every invocation. side_effect = false # `cheatpaths` is a list of directories on this disk — the community checkout # and the personal sheets both carry an absolute path, and the same config on # another machine points at a home directory that does not exist there. Every # spelling of the file, or the lines only stay behind on the platform that # happens to be listed first. `editor`, `colorize`, `style` and `formatter` are # deliberately absent: those are the preferences a user wants carried. The # cheatpaths are where the user's own sheets live, so they are kept for a # rebuild of this machine rather than discarded: backup. [[dotfiles.machine_lines]] file = ["[configHome]/cheat/conf.yml", "~/.cheat/conf.yml", "%APPDATA%/cheat/conf.yml"] match = { key_path = ["cheatpaths.*.path"] } scope = "backup" [commands] format = 1 label = "View or search cheatsheets" description = "View a cheatsheet, list sheets or search their contents. Editing, removing, updating and config/completion modes are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "man" kind = "manual" url = "https://github.com/cheat/cheat/blob/master/doc/cheat.1.md" revision = "2026-10-27" evidence = """ cheat [options] [CHEATSHEET] -a, --all -b, --brief -c, --colorize -l, --list -p, --path=PATH -r, --regex -s, --search=PHRASE -t, --tag=TAG """ [[commands.field]] id = "sheet" label = "Cheatsheet" type = "string" position = 0 sources = ["man"] [[commands.field]] id = "search" label = "Search phrase" type = "string" option = ["--search", "-s"] sources = ["man"] [[commands.field]] id = "regex" label = "Phrase is a regular expression" type = "boolean" option = ["--regex", "-r"] sources = ["man"] [[commands.field]] id = "list" label = "List cheatsheets" type = "boolean" option = ["--list", "-l"] sources = ["man"] [[commands.field]] id = "brief" label = "Brief listing" type = "boolean" option = ["--brief", "-b"] sources = ["man"] [[commands.field]] id = "all" label = "Search all cheatpaths" type = "boolean" option = ["--all", "-a"] sources = ["man"] [[commands.field]] id = "colorize" label = "Colorize output" type = "boolean" option = ["--colorize", "-c"] sources = ["man"] [[commands.field]] id = "path_filter" label = "Cheatpath" type = "string" option = ["--path", "-p"] sources = ["man"] [[commands.field]] id = "tag" label = "Tag" type = "string" option = ["--tag", "-t"] sources = ["man"] [[commands.task]] id = "view" label = "View a cheatsheet" fields = ["sheet"] required = ["sheet"] [[commands.task]] id = "search_all" label = "Search all sheets" fields = ["search", "regex", "colorize", "all"] required = ["search"] set = { colorize = [true] } [[commands.task]] id = "list_sheets" label = "List sheets" fields = ["list", "brief", "tag", "path_filter"] required = ["list"] set = { list = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["sheet", "search", "regex", "list", "brief"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["all", "colorize", "path_filter", "tag"]