PWCLIENT(1)

πŸ“¦ version 2.9.0, in alpine 3.24

🌸 PWCLIENT(1) β€” the pwclient glow-up 🌸

okay bestie, settle in πŸ’– this is pwclient, from the Generated Python Manual β€” it's your little command-line bestie for talking to Patchwork, and honestly it's giving main character energy. Let me walk you through it, no cap.


✨ NAME ✨

pwclient β€” that's the whole name, that's the vibe πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

pwclient [-h] [--debug] {apply,git-am,get,info,projects,check-get,check-list,check-info,check-create,event-list,states,view,update,list,search} ...

so it's literally pwclient plus one of those commands, and then whatever that command wants. pick your fighter πŸ’…


πŸ”₯ OPTIONS πŸ”₯

  • --debug β€” turns on debugging logging. but bestie, read the fine print: it's only supported with the REST backend. so if you're not on REST, this flag is just doing cardio for nothing 😭

πŸ‘‘ COMMANDS πŸ‘‘

here's the whole squad, one by one 🫢

  • pwclient apply β€” applies a patch in the current directory using 'patch -p1'. yes, the real patch, doing real -p1 things ✨
  • pwclient git-am β€” applies a patch to the current git branch using 'git am'. git girlies rise πŸ™ˆ
  • pwclient get β€” downloads a patch and saves it locally. your filesystem says thank you πŸ’–
  • pwclient info β€” shows information for a given patch ID
  • pwclient projects β€” lists all projects
  • pwclient check-get β€” gets checks for a patch
  • pwclient check-list β€” lists all checks
  • pwclient check-info β€” shows information for a given check
  • pwclient check-create β€” adds a check to a patch
  • pwclient event-list β€” lists events
  • pwclient states β€” shows the list of potential patch states
  • pwclient view β€” views a patch
  • pwclient update β€” updates a patch
  • pwclient list β€” lists patches using optional filters
  • pwclient search β€” an alias for 'list' (same energy, different name, we love a rebrand πŸ’…)

🧚 COMMAND 'pwclient apply' 🧚

usage: pwclient apply [--help] [-h] [-p PROJECT] PATCH_ID [PATCH_ID ...]

PATCH_ID β€” the patch ID. give it one, give it many, it's not judgy πŸ“

⭐ OPTIONS 'pwclient apply' ⭐

  • -h, --use-hashes β€” lookup by patch hash. ⚠️ bestie heads up: -h here is not help, it's --use-hashes. the audacity honestly πŸ’€
  • -p PROJECT, --project PROJECT β€” lookup patch in project

🌈 COMMAND 'pwclient git-am' 🌈

usage: pwclient git-am [--help] [-h] [-p PROJECT] [-s] [-3] [-m] PATCH_ID [PATCH_ID ...]

PATCH_ID β€” the patch ID

⭐ OPTIONS 'pwclient git-am' ⭐

  • -h, --use-hashes β€” lookup by patch hash (again: not help, it's hashes, we've been through this πŸ’€)
  • -p PROJECT, --project PROJECT β€” lookup patch in project
  • -s, --signoff β€” passes '--signoff' to 'git-am'
  • -3, --3way β€” passes '--3way' to 'git-am'
  • -m, --msgid β€” passes '--message-id' to 'git-am'

πŸŽ€ COMMAND 'pwclient get' πŸŽ€

usage: pwclient get [--help] [-h] [-p PROJECT] PATCH_ID [PATCH_ID ...]

PATCH_ID β€” the patch ID

⭐ OPTIONS 'pwclient get' ⭐

  • -h, --use-hashes β€” lookup by patch hash
  • -p PROJECT, --project PROJECT β€” lookup patch in project

πŸ’œ COMMAND 'pwclient info' πŸ’œ

usage: pwclient info [--help] [-h] [-p PROJECT] PATCH_ID [PATCH_ID ...]

PATCH_ID β€” the patch ID

⭐ OPTIONS 'pwclient info' ⭐

  • -h, --use-hashes β€” lookup by patch hash
  • -p PROJECT, --project PROJECT β€” lookup patch in project

🌸 COMMAND 'pwclient projects' 🌸

usage: pwclient projects [-h]

that's it. that's the whole usage line. ✨ iconic, minimal, no notes ✨


πŸ¦‹ COMMAND 'pwclient check-get' πŸ¦‹

usage: pwclient check-get [--help] [-h] [-p PROJECT] [-f FORMAT] PATCH_ID [PATCH_ID ...]

PATCH_ID β€” the patch ID

⭐ OPTIONS 'pwclient check-get' ⭐

  • -h, --use-hashes β€” lookup by patch hash
  • -p PROJECT, --project PROJECT β€” lookup patch in project
  • -f FORMAT, --format FORMAT β€” prints output in the given format. you can use tags matching fields, e.g. %{context}, %{state}, or %{msgid}. so customizable, so demure πŸ’…

πŸ“ COMMAND 'pwclient check-list' πŸ“

usage: pwclient check-list [-h] [-u USER] [PATCH_ID]

PATCH_ID β€” the patch ID. and listen: it's required if using the REST API backend. so with REST, no PATCH_ID, no party πŸ™ˆ

⭐ OPTIONS 'pwclient check-list' ⭐

  • -u USER, --user USER β€” user (name or ID) to filter checks by

🌟 COMMAND 'pwclient check-info' 🌟

usage: pwclient check-info [-h] [PATCH_ID] CHECK_ID

PATCH_ID β€” the patch ID (required if using the REST API backend, same deal as above)

CHECK_ID β€” the check ID


πŸ’– COMMAND 'pwclient check-create' πŸ’–

usage: pwclient check-create [--help] [-h] [-p PROJECT] [-c CONTEXT] [-s {pending,success,warning,fail}] [-u TARGET_URL] [-d DESCRIPTION] PATCH_ID [PATCH_ID ...]

PATCH_ID β€” the patch ID

⭐ OPTIONS 'pwclient check-create' ⭐

okay so the manpage literally doesn't give blurbs for these next few β€” the flag names are doing all the talking, and I respect the confidence 😌

  • -h, --use-hashes β€” lookup by patch hash
  • -p PROJECT, --project PROJECT β€” lookup patch in project
  • -c CONTEXT, --context CONTEXT
  • -s {pending,success,warning,fail}, --state {pending,success,warning,fail}
  • -u TARGET_URL, --target-url TARGET_URL
  • -d DESCRIPTION, --description DESCRIPTION

πŸ’« COMMAND 'pwclient event-list' πŸ’«

usage: pwclient event-list [-h] [-p PROJECT] [-c CATEGORY] [--since SINCE] [-f FORMAT]

⭐ OPTIONS 'pwclient event-list' ⭐

  • -p PROJECT, --project PROJECT β€” filter by project name (see 'projects' for the list πŸ‘€)
  • -c CATEGORY, --category CATEGORY β€” filter by event category (e.g. 'series-completed')
  • --since SINCE β€” show only events since a given date in ISO 8601 format. dates in ISO 8601, as the universe intended ⭐
  • -f FORMAT, --format FORMAT β€” print output in the given format. you can use tags matching fields, e.g. %{id}, %{category}, or %{series_id}

🌱 COMMAND 'pwclient states' 🌱

usage: pwclient states [-h]

short, sweet, shows you the potential patch states. periodt πŸ’…


πŸ‘€ COMMAND 'pwclient view' πŸ‘€

usage: pwclient view [--help] [-h] [-p PROJECT] PATCH_ID [PATCH_ID ...]

PATCH_ID β€” the patch ID

⭐ OPTIONS 'pwclient view' ⭐

  • -h, --use-hashes β€” lookup by patch hash
  • -p PROJECT, --project PROJECT β€” lookup patch in project

πŸ”§ COMMAND 'pwclient update' πŸ”§

usage: pwclient update [--help] [-h] [-p PROJECT] [-c COMMIT-REF] [-s STATE] [-a {yes,no}] PATCH_ID [PATCH_ID ...]

PATCH_ID β€” the patch ID

⭐ OPTIONS 'pwclient update' ⭐

  • -h, --use-hashes β€” lookup by patch hash
  • -p PROJECT, --project PROJECT β€” lookup patch in project
  • -c COMMIT-REF, --commit-ref COMMIT-REF β€” commit reference hash
  • -s STATE, --state STATE β€” set patch state (e.g., 'Accepted', 'Superseded' etc.)
  • -a {yes,no}, --archived {yes,no} β€” set patch archived state. it's literally yes or no, pick one bestie 🫢

πŸ“‹ COMMAND 'pwclient list' πŸ“‹

usage: pwclient list [-h] [-s STATE] [-a ARCHIVED] [-p PROJECT] [-w WHO] [-d WHO] [-n MAX#] [-N MAX#] [-m MESSAGEID] [-H HASH] [-S SERIES_ID] [-f FORMAT] [STR]

STR β€” substring to search for patches by name

⭐ OPTIONS 'pwclient list' ⭐

  • -s STATE, --state STATE β€” filter by patch state (e.g., 'New', 'Accepted', etc.)
  • -a ARCHIVED, --archived ARCHIVED β€” filter by patch archived state
  • -p PROJECT, --project PROJECT β€” filter by project name (see 'projects' for the list)
  • -w WHO, --submitter WHO β€” filter by submitter (name, e-mail substring search)
  • -d WHO, --delegate WHO β€” filter by delegate (name, e-mail substring search)
  • -n MAX# β€” limit results to first n
  • -N MAX# β€” limit results to last N. yes lowercase -n and uppercase -N are different things, stay sharp 😭
  • -m MESSAGEID, --msgid MESSAGEID β€” filter by Message-Id
  • -H HASH, --hash HASH β€” filter by hash
  • -S SERIES_ID, --series SERIES_ID β€” filter by series ID
  • -f FORMAT, --format FORMAT β€” print output in the given format. you can use tags matching fields, e.g. %{id}, %{state}, or %{msgid}

usage: pwclient search [-h] [-s STATE] [-a ARCHIVED] [-p PROJECT] [-w WHO] [-d WHO] [-n MAX#] [-N MAX#] [-m MESSAGEID] [-H HASH] [-S SERIES_ID] [-f FORMAT] [STR]

STR β€” substring to search for patches by name

(same list, because search is literally an alias for 'list' β€” matching set, matching energy πŸŽ€)

  • -s STATE, --state STATE β€” filter by patch state (e.g., 'New', 'Accepted', etc.)
  • -a ARCHIVED, --archived ARCHIVED β€” filter by patch archived state
  • -p PROJECT, --project PROJECT β€” filter by project name (see 'projects' for the list)
  • -w WHO, --submitter WHO β€” filter by submitter (name, e-mail substring search)
  • -d WHO, --delegate WHO β€” filter by delegate (name, e-mail substring search)
  • -n MAX# β€” limit results to first n
  • -N MAX# β€” limit results to last N
  • -m MESSAGEID, --msgid MESSAGEID β€” filter by Message-Id
  • -H HASH, --hash HASH β€” filter by hash
  • -S SERIES_ID, --series SERIES_ID β€” filter by series ID
  • -f FORMAT, --format FORMAT β€” print output in the given format. you can use tags matching fields, e.g. %{id}, %{state}, or %{msgid}

πŸ’¬ COMMENTS πŸ’¬

want more deets on any single command? use:

pwclient <command> --help

and it'll spill the tea for you πŸ«–

now the important bit β€” to avoid unicode encode/decode errors, you should export the LANG or LC_ALL environment variables according to the configured locales on your system. and if those variables are already set, make sure they point to valid and installed locales. πŸ‘ˆ do this, fr fr, unicode errors are not the vibe 😭

bestie warning 🚨 β€” LANG/LC_ALL pointing at locales that aren't valid and installed on your system is exactly how you get unicode encode/decode nonsense. double-check them.

🫢 AUTHOR 🫢

Patchwork Developers patchwork@lists.ozlabs.org


🌐 DISTRIBUTION 🌐

the latest version of pwclient may be downloaded from https://github.com/getpatchwork/patchwork β€” go get your fresh copy, you deserve it πŸ‘‘


✨ and that's the whole page, bestie ✨ this beauty is pwclient from the Generated Python Manual, dated 2026-04-10 β€” so recent, so fresh, so cunty in a command-line way πŸ’…πŸ¦‹πŸ’– love u, go file some patches 🫢

πŸ“¦ where this page comes from