PWCLIENT(1)
πΈ 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 realpatch, doing real-p1things β¨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 IDpwclient projectsβ lists all projectspwclient check-getβ gets checks for a patchpwclient check-listβ lists all checkspwclient check-infoβ shows information for a given checkpwclient check-createβ adds a check to a patchpwclient event-listβ lists eventspwclient statesβ shows the list of potential patch statespwclient viewβ views a patchpwclient updateβ updates a patchpwclient listβ lists patches using optional filterspwclient 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:-hhere 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 firstn-N MAX#β limit results to lastN. yes lowercase-nand uppercase-Nare 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}
π COMMAND 'pwclient search' π
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
β OPTIONS 'pwclient search' β
(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 firstn-N MAX#β limit results to lastN-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_ALLpointing 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
- alpine 3.24: pwclient-doc 2.9.0-r0 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms