{"id":28955771,"url":"https://github.com/sschmid/pw-debug","last_synced_at":"2025-06-23T20:09:59.414Z","repository":{"id":298968377,"uuid":"1001698278","full_name":"sschmid/pw-debug","owner":"sschmid","description":"temp repo for bugfixing","archived":false,"fork":false,"pushed_at":"2025-06-13T22:19:42.000Z","size":2725,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-13T22:19:56.726Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sschmid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-13T20:56:57.000Z","updated_at":"2025-06-13T20:58:50.000Z","dependencies_parsed_at":"2025-06-13T22:30:12.631Z","dependency_job_id":null,"html_url":"https://github.com/sschmid/pw-debug","commit_stats":null,"previous_names":["sschmid/pw-debug"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/sschmid/pw-debug","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2Fpw-debug","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2Fpw-debug/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2Fpw-debug/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2Fpw-debug/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sschmid","download_url":"https://codeload.github.com/sschmid/pw-debug/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2Fpw-debug/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261548746,"owners_count":23175499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-23T20:09:58.275Z","updated_at":"2025-06-23T20:09:59.396Z","avatar_url":"https://github.com/sschmid.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔐 `pw` - Terminal Password Manager powered by `fzf`\n\n`pw` is a command-line password manager unifying trusted password managers\nlike [macOS Keychain](https://developer.apple.com/documentation/security/keychain_services),\n[KeePassXC](https://keepassxc.org) and [GnuPG](https://www.gnupg.org) in a single interface within the terminal.\nIt combines the security of your favourite password managers with the speed and\nsimplicity of the [fzf](https://github.com/junegunn/fzf) fuzzy finder and allows\nyou to interact with [various keychains](#using-multiple-keychains) effortlessly.\n\n[![CI](https://github.com/sschmid/pw-terminal-password-manager/actions/workflows/ci.yml/badge.svg)](https://github.com/sschmid/pw-terminal-password-manager/actions/workflows/ci.yml)\n[![Coverage Status](https://coveralls.io/repos/github/sschmid/pw-terminal-password-manager/badge.svg)](https://coveralls.io/github/sschmid/pw-terminal-password-manager)\n[![Latest release](https://img.shields.io/github/release/sschmid/pw-terminal-password-manager.svg)](https://github.com/sschmid/pw-terminal-password-manager/releases)\n[![Twitter](https://img.shields.io/twitter/follow/s_schmid)](https://twitter.com/intent/follow?original_referer=https%3A%2F%2Fgithub.com%2Fsschmid%2Fpw\u0026screen_name=s_schmid\u0026tw_p=followbutton)\n\n# Why `pw`?\n\n- **Built on Proven Tools:** Instead of reinventing password management, `pw` combines reliable, established tools into one convenient interface.\n- **Efficiency:** With the [fzf](https://github.com/junegunn/fzf) fuzzy finder, `pw` allows for rapid and intuitive interaction with your keychains - nice!\n- **Simplicity:** `pw` is built using simple bash, making it easy to understand, modify, and extend.\n- **Extensibility:** Adding plugins for your preferred password managers takes only minutes (see [plugins](plugins)).\n- **Clipboard Management:** Automatically clears passwords from the clipboard after a configurable time.\n- **Multiple Keychain Support**: Effortlessly manage and switch between [multiple keychains](#using-multiple-keychains) stored in various locations.\n\n![pw-fzf](readme/pw-fzf.png)\n\n# Install and update `pw`\n\nSee [requirements](#requirements) for dependencies.\n\n### Install script\n\n```bash\nsudo bash -c \"$(curl -fsSL https://raw.githubusercontent.com/sschmid/pw-terminal-password-manager/main/install)\"\n```\n\n### Manual install\n\n```bash\ngit clone https://github.com/sschmid/pw-terminal-password-manager /opt/pw\nln -s /opt/pw/src/pw /usr/local/bin/pw\n```\n\n### Update\n\n```bash\nsudo pw update\n```\n\n### Uninstall\n\n```bash\nsudo /opt/pw/install --uninstall\n```\n\n|                                                                                             | Tested on the following platforms: |                                                     |\n|---------------------------------------------------------------------------------------------|------------------------------------|-----------------------------------------------------|\n| \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/3/3a/MacOS_logo2.svg\" height=\"48\"\u003e | macOS                              |                                                     |\n| \u003cimg src=\"https://flatpak.org/img/distro/alpine-97c47415.svg\" height=\"48\"\u003e                  | Alpine Linux                       | [Dockerfile](docker/alpine/Dockerfile)              |\n| \u003cimg src=\"https://flatpak.org/img/distro/arch-61d364d6.svg\" height=\"48\"\u003e                    | Arch Linux                         | [Dockerfile](docker/archlinux/Dockerfile)           |\n| \u003cimg src=\"https://flatpak.org/img/distro/debian-03035138.svg\" height=\"48\"\u003e                  | Debian                             | [Dockerfile](docker/debian/Dockerfile)              |\n| \u003cimg src=\"https://flatpak.org/img/distro/fedora-e2366c83.svg\" height=\"48\"\u003e                  | Fedora                             | [Dockerfile](docker/fedora/Dockerfile)              |\n| \u003cimg src=\"https://flatpak.org/img/distro/opensuse-6686fd27.svg\" height=\"48\"\u003e                | openSUSE Tumbleweed                | [Dockerfile](docker/opensuse-tumbleweed/Dockerfile) |\n| \u003cimg src=\"https://flatpak.org/img/distro/ubuntu-d865890b.svg\" height=\"48\"\u003e                  | Ubuntu                             | [Dockerfile](docker/ubuntu/Dockerfile)              |\n\n# Quickstart\n\n```bash\n# create a keychain (.keychain-db for macOS Keychain, .kdbx for KeePassXC)\npw init ~/secrets.keychain-db\n\n# optionally configure keychains in ~/.config/pw/pw.conf so you can access them\n# from anywhere, otherwise, pw will discover keychains in the current directory\necho 'keychain = ~/secrets.keychain-db' \u003e\u003e ~/.config/pw/pw.conf\n\n# add an entry\npw add GitHub sschmid\n\n# add another entry interactively\npw add\n\n# copy the password directly by providing the name\npw GitHub\n\n# or use fzf to select an entry (-p prints the password instead of copying it)\npw -p\n```\n\nIf you would like to manage your passwords yourself, you can use `pw` with\nGnuPG to store encrypted passwords in a directory:\n\n```bash\n# create a keychain\npw init ~/secrets/   # end with `/` for GnuPG\ncd ~/secrets\n\n# optionally configure keychains in ~/.config/pw/pw.conf so you can access them\n# from anywhere, otherwise, pw will discover gpg encrypted passwords in the\n# current directory\necho 'keychain = ~/secrets/' \u003e\u003e ~/.config/pw/pw.conf\n\n# add an entry\n# if you haven't configured ~/.config/pw/pw.conf yet, you need to specify the\n# keychain once because the directory is empty and pw can't determine the\n# keychain type yet\npw -k ~/secrets add GitHub sschmid\n\n# add another entry interactively\npw add\n\n# output binary format (default)\npw add GitHub.gpg\n\n# output ASCII-armored format\npw add GitHub.asc\n\n# copy the password directly by providing the name\npw GitHub\n\n# or use fzf to select an entry (-p prints the password instead of copying it)\npw -p\n```\n\n# How `pw` works\n\n`pw` provides a unified interface to interact with various keychains and forwards\ncommands to the respective password manager using plugins. Plugins are simple\nbash scripts that implement the following functions (see [plugins](plugins)):\n\n- `init`\n- `add`\n- `edit`\n- `get`\n- `show`\n- `rm`\n- `ls`\n- `open`\n- `lock`\n- `unlock`\n\nPassword managers may vary in their capabilities, so `pw` provides a\nconsistent interface by implementing workarounds where necessary.\n\nHere's an overview of which features are supported by each plugin:\n\n| Feature                                                                         | macOS Keychain | KeePassXC                         | GnuPG          |\n|--------------------------------------------------------------------------------:|:--------------:|:---------------------------------:|:--------------:|\n| Create keychain                                                                 | ✅             | ✅                                 | ✅ (directory) |\n| Add entry with name and password                                                | ✅             | ✅                                 | ✅             |\n| Add entry with name, account, url, notes and password                           | ✅             | ✅                                 | 🔐             |\n| Allow multiple entries with the same \u003cbr /\u003e name given the account is different | ✅             | ❌                                 | ❌             |\n| Add entry in groups (e.g. Coding/Work)                                          | ❌             | 🔐                                 | ✅             |\n| Edit entry                                                                      | ✅             | ✅                                 | ✅             |\n| Remove entry                                                                    | ✅             | ✅                                 | ✅             |\n| List entries                                                                    | ✅             | ✅                                 | ✅             |\n| Open keychain                                                                   | ✅             | ✅                                 | ✅             |\n| Lock keychain                                                                   | ✅             | ℹ️ keychain is never left unlocked | ✅             |\n| Unlock keychain                                                                 | ✅             | ✅ starts interactive session      | ✅             |\n| Key file support                                                                | ❌             | ✅                                 | ❌             |\n| YubiKey support                                                                 | ❌             | ✅                                 | ❌             |\n| Automatic keychain discovery                                                    | ✅             | ✅                                 | ✅             |\n\n\u003csup\u003e\n✅: native support by the password manager\u003cbr /\u003e\n🔐: workaround implemented by pw\u003cbr /\u003e\n❌: not supported by the password manager\n\u003c/sup\u003e\n\n# Security Considerations\n\n\u003e [!IMPORTANT]\n\u003e `pw` supports the macOS `security` command and `gpg` through its plugins,\n\u003e which may introduce security risks. These risks arise from the behavior of\n\u003e these underlying commands, not from `pw` itself.\n\n## macOS `security` Command\n\nTypically, when accessing keychain items added by other applications, the user\nis prompted to `allow` or `always allow` access. However, when keychain entries\nare added using the `security` command itself, the command is automatically\ngranted access to those items without future prompts. This can be a security risk,\nbecause other applications can use the `security` command to access these items\nwithout prompting the user.\n\n`pw` changes this behaviour to reduce security risks by not automatically adding\nthe `security` command to the keychain's access control list. This way you have\nfull control over which applications can access your keychain items and decide\nwhether to allow or deny access on a item-by-item basis.\n\nSee [Plugin specific configuration](#macos-keychain) to change this behaviour.\n\nIf you decide to change this behaviour, consider the following recommendations:\n\n\u003e [!TIP]\n\u003e - Change the keychain settings to require a password after a certain time and\n\u003e   activate the option to lock the keychain when the computer sleeps.\n\u003e - Lock the keychain after each use to secure it.\n\n```bash\npw lock\n```\n\nAdditionally, keychain entries can be listed without requiring a password, even\nwhen the keychain is locked. This can expose metadata about the keychain entries\nlike the name, account, URL and comments. This cannot be prevented by `pw` and\nis a limitation of the macOS Keychain. There are workarounds like encrypting the\nkeychain and only temporarily decrypting it when needed.\n\n## GPG Passphrase Caching\n\nGPG caches passphrases after use, which can allow access to the private key\nwithout re-entering the passphrase.\n\n\u003e [!TIP]\n\u003e - Shorten the GPG passphrase caching time by adjusting the `gpg-agent` settings.\n\u003e - Kill the GPG agent process to clear the passphrase cache.\n\n```bash\npw lock   # will run 'gpgconf --kill gpg-agent' to kill the GPG agent process\n```\n\nAdditionally, while GPG encrypts files, the file names can still be listed\nwithout requiring the passphrase, thereby exposing the file names. This cannot\nbe prevented by `pw` and is a limitation of GPG. There are workarounds like\nusing a separate encrypted container or using a tool like `tar` to encrypt the\nfiles into a single archive.\n\n## KeePassXC\n\n\u003e [!NOTE]\n\u003e KeePassXC, unlike the `security` command and GPG, remains locked when not in\n\u003e use and does not have these risks.\n\n# Security Comparison\n\n| Security Considerations                    | macOS Keychain | KeePassXC | GnuPG |\n|-------------------------------------------:|:--------------:|:---------:|:-----:|\n| Keychain stays unlocked                    | ⚠️              | ✅        | ⚠️     |\n| Metadata exposure while keychain is locked | ⚠️              | ✅        | ⚠️     |\n\n\u003csup\u003e\n✅: no known security risk\u003cbr /\u003e\n⚠️: potential security risk, but can be mitigated\u003cbr /\u003e\n🚨: potential security risk, no mitigation possible\n\u003c/sup\u003e\n\n# Usage\n\nIn all following examples, `[\u003cargs\u003e]` refers to the optional\narguments `name`, `account`, `url`, `notes` in that order.\n\nWhen using fzf mode to select an entry, such as when getting, editing,\nor removing an entry, you can toggle the entry preview by pressing `?`.\nThe entry preview shows details like the name, account, url, and notes and\nis off by default.\n\nPress `CTRL-Y` on any entry to copy (or print) the details.\n\n## Config file\n\nThe suggested location for the `pw` configuration file is `$XDG_CONFIG_HOME/pw/pw.conf`,\nwhich usually resolves to `~/.config/pw/pw.conf`. `pw` will automatically create\nthis file with default values if it doesn't exist.\n\nYou can specify a different configuration file using the `-c` option:\n\n```bash\npw -c /path/to/config\n```\n\n## Create keychain\n\n```\npw init \u003ckeychain\u003e                 create keychain\n```\n\nExamples:\n\n```bash\npw init ~/secrets.keychain-db   # macOS Keychain\npw init ~/secrets.kdbx          # KeePassXC\npw init ~/secrets/              # GnuPG (end with `/` to create a directory)\n\n# macos_keychain special behaviour\npw init secrets.keychain-db            # will create a keychain in ~/Library/Keychains\npw init \"${PWD}/secrets.keychain-db\"   # will create a keychain in the current directory\n```\n\n## Add entry with name and optional account\n\n```\npw add [\u003cargs\u003e]                    add entry. If no args, interactive mode\n```\n\nExamples:\n\n```bash\npw add                                      # add interactively\npw add GitHub                               # add entry with name\npw add Google work@example.com              # add entry with name and account\npw add Google personal@example.com\npw add Homepage admin https://example.com   # add entry with name, account, url\npw add Coveralls \"\" https://coveralls.io \"login via GitHub\" # add entry with name, url, notes\n```\n\nIf a plugin doesn't support multiple entries with the same name,\nyou can add the account to the name:\n\n```bash\npw add \"Google (Work)\" work@example.com\npw add \"Google (Personal)\" personal@example.com\n```\n\n## Add entry in group\n\nExamples:\n\n```bash\npw add Coding/GitHub\npw add Coding/JetBrains\n```\n\n## Edit entry\n\n```\npw edit [\u003cargs\u003e]                   edit entry. If no args, fzf mode\n```\n\nExamples:\n\n```bash\npw edit          # starts fzf to select an entry\npw edit GitHub\n```\n\n## Get entry\n\n```\npw [-p] [\u003cargs\u003e]                   copy (or print) password. If no args, fzf mode\n```\n\nExamples:\n\n```bash\npw          # starts fzf to select an entry\npw GitHub\n```\n\n## Show entry\n\n```\npw show [-p] [\u003cargs\u003e]              copy (or print) details. If no args, fzf mode\n```\n\nExamples:\n\n```bash\npw show          # starts fzf to select an entry\npw show GitHub\n```\n\n## Remove entry\n\n```\npw rm [\u003cargs\u003e]                remove entry. If no args, fzf mode\n```\n\nExamples:\n\n```bash\npw rm          # starts fzf to select an entry\npw rm GitHub\n```\n\n## Generate a password\n\n```\npw gen [-p] [\u003clength\u003e] [\u003cclass\u003e]   generate password with given length and\n                                   character class (default: 35 [:graph:])\n```\n\nExamples:\n\n```bash\npw gen                  # equivalent to pw gen 35 '[:graph:]'\npw gen 16\npw gen 24 '[:alnum:]'\npw gen 32 '[:digit:]'\n```\n\n## Automatic keychain discovery\n\n`pw` automatically searches for keychains in the current directory. This way\nyou can keep your keychains in the same directory as your project and `pw` will\nautomatically discover and use them.\n\n## Specifying a keychain\n\nThere are multiple ways to specify a keychain:\n\n```bash\n# specify keychain using -k for the current command (overrides PW_KEYCHAIN)\npw -k secrets.keychain-db\n```\n\n```bash\n# specify keychain for the current command\nPW_KEYCHAIN=secrets.keychain-db pw\n```\n\n```bash\n# export default keychain for the current shell\nexport PW_KEYCHAIN=secrets.keychain-db\npw\n```\n\n## Using multiple keychains\n\n`pw` allows you to interact with multiple keychains from different password\nmanagers. This feature is particularly useful when you have keychains stored\nin various locations. You can specify different keychains using the\nconfiguration file, which defaults to `~/.config/pw/pw.conf`.\n\nTo use multiple keychains, add your desired keychains to `~/.config/pw/pw.conf`, e.g.:\n\n```ini\n[keychains]\nkeychain = secrets.keychain-db\nkeychain = ~/path/to/myproject.keychain-db\nkeychain = ~/path/to/keepassxc.kdbx\nkeychain = ~/path/to/gpg/secrets\n```\n\nAfter configuring your keychains, continue using `pw` as usual. If no keychain\nis specified with `-k` or by setting `PW_KEYCHAIN`, `pw` allows you to select\none from your `~/.config/pw/pw.conf` file using the fuzzy finder.\n\n![pw-fzf](readme/pw-keychains.png)\n\n## Using `pw` in a command or script\nUse `pw` to avoid leaking secrets in scripts that you share or commit.\n\n```bash\ncurl -s -H \"Authorization: token $(pw -p GITHUB_TOKEN)\" https://api.github.com/user\n```\n\n## Provide passwords via `STDIN`\n\nTo avoid password prompts that can interrupt scripts,\nyou can provide passwords via `STDIN`.\n\n\u003e [!CAUTION]\n\u003e Avoid providing passwords in plain text, because they can be exposed in process\n  listings, shell history, logs, and through insecure network transmissions, making\n  them vulnerable to theft or misuse. Instead, use secure methods like environment\n  variables to protect sensitive information.\n\n```bash\necho \"${MY_PASSWORD}\" | pw init ~/secrets.kdbx\necho \"${MY_PASSWORD}\" | pw add Google personal@example.com\necho \"${MY_PASSWORD}\" | pw unlock\n```\n\nIf your shell supports `STDIN` with here string (like `bash`), you can use it like this:\n\n```bash\npw init ~/secrets.kdbx \u003c\u003c\u003c \"${MY_PASSWORD}\"\npw add Google personal@example.com \u003c\u003c\u003c \"${MY_PASSWORD}\"\npw unlock \u003c\u003c\u003c \"${MY_PASSWORD}\"\n```\n\n# Customization\n\nConfigure `pw` in `~/.config/pw/pw.conf` with the following options:\n\n```ini\n[general]\npassword_length = 35\npassword_character_class = [:graph:]\nclipboard_clear_time = 45\n\n# pbcopy/pbpaste, xclip, xsel, and wl-copy/wl-paste are supported by default.\n# If you're using a different clipboard manager, you can specify it here:\n# copy = my-copy-command\n# paste = my-paste-command\n\n[plugins]\nplugin = $PW_HOME/plugins/gpg\nplugin = $PW_HOME/plugins/keepassxc\nplugin = $PW_HOME/plugins/macos_keychain\n\n[keychains]\nkeychain = secrets.keychain-db\nkeychain = ~/path/to/your/gpg/vault\nkeychain = ~/path/to/your/keychain.kdbx\nkeychain = ~/path/to/your/keychain.keychain-db\n```\n\nAdditionally, you can use environment variables to customize `pw`. They will\noverride the settings in `~/.config/pw/pw.conf`.\n\n```bash\n# Default keychain used when not specified with -k\n# otherwise, ~/.config/pw/pw.conf is used to select a keychain with fzf\nexport PW_KEYCHAIN=secrets.keychain-db\n\n# Default length of generated passwords\nexport PW_GEN_LENGTH=35\n\n# Default character class for generated passwords\nexport PW_GEN_CLASS='[:graph:]'\n\n# Time after which the password is cleared from the clipboard\nexport PW_CLIP_TIME=45\n```\n\n# Plugin specific configuration\n\nSome plugins support additional configuration options by appending them to the\nkeychain path after a colon `:`, e.g. `/path/to/keychain:key=value`.\n\nThis syntax can be used everywhere a keychain is specified, e.g.:\n\n```bash\npw -k ~/secrets.kdbx:key1=value1,key2=value2\n```\n\nIn your `~/.config/pw/pw.conf`:\n```bash\n...\nkeychain = ~/secrets.kdbx:key1=value1,key2=value2\n...\n```\n\n## macOS Keychain\n\nAs mentioned in the [Security Considerations](#security-considerations) section,\n`pw` won't automatically add the `security` command to the keychain's access\ncontrol list to reduce security risks. If you want to add the `security` command\nto the keychain's access control list by default, you can set the environment\nvariable `PW_MACOS_KEYCHAIN_ACCESS_CONTROL` to `always-allow`:\n\n```bash\nexport PW_MACOS_KEYCHAIN_ACCESS_CONTROL=\"always-allow\"\n```\n\n## KeePassXC\n\nIf you want to use a key file for unlocking the database,\nyou can specify the path to the key file:\n\n```bash\n~/secrets.kdbx:keyfile=/path/to/keyfile\n```\n\nIf you're using a YubiKey with KeePassXC, you can specify the slot to use:\n\n```bash\n~/secrets.kdbx:yubikey=1:23456789\n```\n\n## GnuPG\n\nTo set a different gpg key as the default for encryption, you can specify the key id:\n\n```bash\n~/path/to/gpg/secrets:key=634419040D678764\n```\n\nYou can control the gpg output format by specifying a file extension:\n\n```bash\n# output binary format (default)\npw add GitHub.gpg\n\n# output ASCII-armored format\npw add GitHub.asc\n```\n\n# Requirements\n\nInstall the following [DEPENDENCIES.md](DEPENDENCIES.md) to use `pw`:\n\n- `bash`\n- `fzf`\n- `gnupg` (optional, for GnuPG plugin)\n- `keepassxc` (optional, for KeePassXC plugin)\n\nMake sure to have a clipboard manager installed to copy passwords to the clipboard.\nCurrently supported clipboard managers are:\n- `pbcopy`, `pbpaste` (macOS, built-in)\n- `xclip` (Linux)\n- `xsel` (Linux)\n- `wl-clipboard` (Wayland)\n\nIf you're using a different clipboard manager,\nyou can specify it in your `~/.config/pw/pw.conf` file.\n\n```ini\n[general]\ncopy = my-copy-command\npaste = my-paste-command\n```\n\n### macOS\n\n```bash\nbrew install $(cat /opt/pw/DEPENDENCIES.md)\n```\n\n### Alpine Linux\n\n```bash\napk add --no-cache $(cat /opt/pw/DEPENDENCIES.md)\n```\n\n### Arch Linux\n\n```bash\npacman -Syu --noconfirm \u0026\u0026 pacman -S --noconfirm --needed $(cat /opt/pw/DEPENDENCIES.md)\n```\n\n### Debian/Ubuntu\n\n```bash\napt-get update \u0026\u0026 apt-get install -y $(cat /opt/pw/DEPENDENCIES.md)\n```\n\n### Fedora\n\n```bash\ndnf install -y $(cat /opt/pw/DEPENDENCIES.md)\n```\n\n### openSUSE Tumbleweed\n\n```bash\nzypper --non-interactive install --no-recommends $(cat /opt/pw/DEPENDENCIES.md)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsschmid%2Fpw-debug","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsschmid%2Fpw-debug","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsschmid%2Fpw-debug/lists"}