proposals command — review proposals from the terminal
Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization’s review from the terminal, with confirmation and dry-run support.
Record your organization’s decision on a proposal that is waiting on you — the same queue
the Review page shows and reports list --needs-customer-review returns.
A review cannot be undone through the API. approve blocks the asset, and because assets
are unique on type and content, that status is global rather than scoped to your
organization. The command asks for confirmation unless you pass --yes, and each
organization is capped at 10 reviews per day across all of its API credentials.
--label, plus --brand-id for labels that name a specific target
reject
Declines the proposal
--reject-reason
watchlist
Declines the proposal and parks the asset so it is re-evaluated if it comes back alive
--watchlist-reason, plus --note when the reason is OTHER
watchlist is a flavor of rejection rather than a separate outcome — it is stored as a
REJECT review with the asset watchlisted, which is exactly what the Review page does.
That is why a successful watchlist comes back with review.decision: "REJECT" and
watchlisted: true.
--label is required when approving. Quote it, since every value contains a space:"General Phishing", "Brand Impersonation", "Employee Impersonation",
"Fake Employee", "Targeting Org Users", "C2 Server", "False Positive".Labels that name a specific target — Brand Impersonation and Employee Impersonation — also
need --brand-id.
Reviews must be attributed to a customer-role member of the organization. Staff
credentials are refused with exit code 5.
A 403 from a safety check means the decision needs a person, not that your integration
is broken. Log the proposal ID and move on rather than retrying.
A 409 means either the asset does not match the proposal or the proposal is already
resolved. Re-read the proposal instead of retrying with the same body.
Not every asset type can be watchlisted. Types the watchlist cannot re-check are refused
rather than silently skipped.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"ChainPatrol","colors":{"primary":"#6622DC","light":"#985EFD","dark":"#2A186B"},"logo":{"light":"https://mintcdn.com/chainpatrol/R_CITzEDbsciFTsn/logo/light.svg?fit=max\u0026auto=format\u0026n=R_CITzEDbsciFTsn\u0026q=85\u0026s=8ca4a8411113008ec8f9a57dec249989","dark":"https://mintcdn.com/chainpatrol/R_CITzEDbsciFTsn/logo/dark.svg?fit=max\u0026auto=format\u0026n=R_CITzEDbsciFTsn\u0026q=85\u0026s=3fba0f7cf94681111da5d1ce52ebf33b","href":"https://chainpatrol.com"},"favicon":"https://mintcdn.com/chainpatrol/R_CITzEDbsciFTsn/favicon.svg?fit=max\u0026auto=format\u0026n=R_CITzEDbsciFTsn\u0026q=85\u0026s=2ee94dcfc07708e2929aad42ea5ab4c5","api":{"openapi":"https://app.chainpatrol.io/api/v2/openapi.json?v=2","mdx":{"auth":{"method":"key","name":"X-API-KEY"},"server":"https://app.chainpatrol.io/api/v2"}},"appearance":{"default":"dark"},"background":{"image":"https://mintcdn.com/chainpatrol/oLEHOzLMXL0CWKrg/background.png?fit=max\u0026auto=format\u0026n=oLEHOzLMXL0CWKrg\u0026q=85\u0026s=562d8e2e01dbe50733cb041efde433a6","color":{"dark":"#060114"}},"navbar":{"links":[{"href":"https://chainpatrol.com/blog","label":"Blog"},{"href":"https://chainpatrol.com/changelog","label":"Changelog"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.chainpatrol.io/"}},"footer":{"socials":{"x":"https://x.com/chainpatrol","linkedin":"https://www.linkedin.com/company/89545915","github":"https://github.com/chainpatrol"}},"fonts":{"heading":{"family":"IBM Plex Sans"},"body":{"family":"Inter"}},"integrations":{"ga4":{"measurementId":"G-QEBBHCD92K"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"chainpatrol","hasAudioNarration":false,"actualSubdomain":"chainpatrol","customDomains":["chainpatrol.com"],"gitSource":{"type":"github","owner":"chainpatrol","repo":"docs","deployBranch":"main","contentDirectory":"","mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aef6642ff56dc66d2b76831","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API Reference","count":105},{"language":"default","tag":"Documentation","count":29},{"language":"default","tag":"Integrations","count":24},{"language":"default","tag":"JavaScript SDK","count":22},{"language":"default","tag":"Getting Started","count":20},{"language":"default","tag":"CLI","count":16},{"language":"default","tag":"Concepts","count":14},{"language":"default","tag":"Assets","count":13},{"language":"default","tag":"Threat Detection","count":13},{"language":"default","tag":"Metrics","count":12}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"cli/commands/proposals","slug":"/cli/commands/proposals","pageMetadata":{"title":"proposals command — review proposals from the terminal","sidebarTitle":"proposals","icon":"gavel","description":"Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization's review from the terminal, with confirmation and dry-run support.","href":"/cli/commands/proposals"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization’s review from the terminal, with confirmation and dry-run support.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`chainpatrol`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` proposals`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` review`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`proposalI`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --asset-id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --decision`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`approve`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`|`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`reject`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`|`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`watchlist`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`> [options]`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`proposals-review`,children:`proposals review`}),`\n`,_jsxs(_components.p,{children:[`Record your organization’s decision on a proposal that is waiting on you — the same queue\nthe Review page shows and `,_jsx(_components.a,{href:`/cli/commands/reports#reports-list`,children:_jsx(_components.code,{children:`reports list --needs-customer-review`})}),` returns.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`A review cannot be undone through the API. `,_jsx(_components.code,{children:`approve`}),` blocks the asset, and because assets\nare unique on type and content, that status is global rather than scoped to your\norganization. The command asks for confirmation unless you pass `,_jsx(_components.code,{children:`--yes`}),`, and each\norganization is capped at 10 reviews per day across all of its API credentials.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`options`,children:`Options`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--proposal-id \u003cid>`})}),_jsx(_components.td,{children:`Proposal to review. An alternative to the positional argument.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--asset-id \u003cid>`})}),_jsxs(_components.td,{children:[`Asset the proposal targets. Must match, or the API returns `,_jsx(_components.code,{children:`409`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--decision \u003cd>`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`approve`}),`, `,_jsx(_components.code,{children:`reject`}),`, or `,_jsx(_components.code,{children:`watchlist`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--label \u003ctext>`})}),_jsxs(_components.td,{children:[`Block label, required when approving. Quote it — see `,_jsx(_components.a,{href:`#block-labels`,children:`labels`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--brand-id \u003cid>`})}),_jsx(_components.td,{children:`Brand the asset impersonates. Required for Brand and Employee Impersonation.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--reject-reason \u003cr>`})}),_jsxs(_components.td,{children:[`Required when rejecting: `,_jsx(_components.code,{children:`irrelevant`}),`, `,_jsx(_components.code,{children:`no_malicious_activity`}),`, `,_jsx(_components.code,{children:`insufficient_evidence`}),`, `,_jsx(_components.code,{children:`not_targeting_org`}),`, `,_jsx(_components.code,{children:`decayed`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--watchlist-reason \u003cr>`})}),_jsxs(_components.td,{children:[`Required when watchlisting: `,_jsx(_components.code,{children:`DEAD`}),`, `,_jsx(_components.code,{children:`PARKING`}),`, `,_jsx(_components.code,{children:`NOT_ENOUGH_EVIDENCE`}),`, `,_jsx(_components.code,{children:`OTHER`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--note \u003ctext>`})}),_jsxs(_components.td,{children:[`Free-text detail. Required when `,_jsx(_components.code,{children:`--watchlist-reason OTHER`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--org \u003cslug>`})}),_jsx(_components.td,{children:`Organization slug. Optional for organization-scoped API keys.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--yes`})}),_jsx(_components.td,{children:`Skip the confirmation prompt. Required when not attached to a terminal.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--dry-run`})}),_jsx(_components.td,{children:`Print the payload without submitting it.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`the-three-decisions`,children:`The three decisions`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Decision`}),_jsx(_components.th,{children:`What it does`}),_jsx(_components.th,{children:`Also required`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`approve`})}),_jsx(_components.td,{children:`Blocks the asset`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`--label`}),`, plus `,_jsx(_components.code,{children:`--brand-id`}),` for labels that name a specific target`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`reject`})}),_jsx(_components.td,{children:`Declines the proposal`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`--reject-reason`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`watchlist`})}),_jsxs(_components.td,{children:[`Declines the proposal `,_jsx(_components.strong,{children:`and`}),` parks the asset so it is re-evaluated if it comes back alive`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`--watchlist-reason`}),`, plus `,_jsx(_components.code,{children:`--note`}),` when the reason is `,_jsx(_components.code,{children:`OTHER`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`watchlist`}),` is a flavor of rejection rather than a separate outcome — it is stored as a\n`,_jsx(_components.code,{children:`REJECT`}),` review with the asset watchlisted, which is exactly what the Review page does.\nThat is why a successful watchlist comes back with `,_jsx(_components.code,{children:`review.decision: \"REJECT\"`}),` and\n`,_jsx(_components.code,{children:`watchlisted: true`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`block-labels`,children:`Block labels`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`--label`}),` is required when approving. Quote it, since every value contains a space:`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`\"General Phishing\"`}),`, `,_jsx(_components.code,{children:`\"Brand Impersonation\"`}),`, `,_jsx(_components.code,{children:`\"Employee Impersonation\"`}),`,\n`,_jsx(_components.code,{children:`\"Fake Employee\"`}),`, `,_jsx(_components.code,{children:`\"Targeting Org Users\"`}),`, `,_jsx(_components.code,{children:`\"C2 Server\"`}),`, `,_jsx(_components.code,{children:`\"False Positive\"`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Labels that name a specific target — Brand Impersonation and Employee Impersonation — also\nneed `,_jsx(_components.code,{children:`--brand-id`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`finding-a-proposal-to-review`,children:`Finding a proposal to review`}),`\n`,_jsxs(_components.p,{children:[`Both IDs come from the reports listing. Ask for the proposals waiting on you, then read\n`,_jsx(_components.code,{children:`proposals[].id`}),` and `,_jsx(_components.code,{children:`proposals[].asset.id`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`chainpatrol`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` reports`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --org`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` acme`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --needs-customer-review`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --json`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`examples`,children:`Examples`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`20`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# block a phishing site`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`chainpatrol`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` proposals`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` review`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 4321`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --asset-id`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 987`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --decision`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` approve`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --label`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"General Phishing\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --yes`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# block an impersonation, naming the brand`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`chainpatrol`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` proposals`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` review`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 4321`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --asset-id`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 987`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --decision`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` approve`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --label`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Brand Impersonation\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --brand-id`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 12`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --yes`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# decline it`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`chainpatrol`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` proposals`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` review`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 4321`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --asset-id`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 987`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --decision`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` reject`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --reject-reason`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` no_malicious_activity`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --yes`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# park an asset that went quiet`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`chainpatrol`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` proposals`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` review`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 4321`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --asset-id`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 987`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --decision`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` watchlist`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --watchlist-reason`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` OTHER`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --note`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Registrar suspended it\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --yes`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# see the payload without sending it`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`chainpatrol`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` proposals`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` review`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 4321`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --asset-id`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 987`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --decision`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` reject`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --reject-reason`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` decayed`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --dry-run`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`notes`,children:`Notes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Reviews must be attributed to a customer-role member of the organization. Staff\ncredentials are refused with `,_jsxs(_components.a,{href:`/cli/output#exit-codes`,children:[`exit code `,_jsx(_components.code,{children:`5`})]}),`.`]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.code,{children:`403`}),` from a safety check means the decision needs a person, not that your integration\nis broken. Log the proposal ID and move on rather than retrying.`]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.code,{children:`409`}),` means either the asset does not match the proposal or the proposal is already\nresolved. Re-read the proposal instead of retrying with the same body.`]}),`\n`,_jsx(_components.li,{children:`Not every asset type can be watchlisted. Types the watchlist cannot re-check are refused\nrather than silently skipped.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/external-api/organization-proposals-review`,children:_jsx(_components.code,{children:`POST /organization/proposals/{proposalId}/review`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/reviews`,children:`Reviews concept`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"proposals command — review proposals from the terminal","sidebarTitle":"proposals","icon":"gavel","description":"Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization's review from the terminal, with confirmation and dry-run support.","href":"/cli/commands/proposals"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"proposals review","slug":"proposals-review","depth":2,"children":[{"title":"Options","slug":"options","depth":3,"children":[]},{"title":"The three decisions","slug":"the-three-decisions","depth":3,"children":[]},{"title":"Block labels","slug":"block-labels","depth":3,"children":[]}]},{"title":"Finding a proposal to review","slug":"finding-a-proposal-to-review","depth":2,"children":[]},{"title":"Examples","slug":"examples","depth":2,"children":[]},{"title":"Notes","slug":"notes","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"chainpatrol","siteName":"ChainPatrol","title":"proposals command — review proposals from the terminal - ChainPatrol","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-18T17:56:15.786Z","originalFileLocation":"cli/commands/proposals.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization\u0026#x27;s review from the terminal, with confirmation and dry-run support.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ChainPatrol\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"proposals command — review proposals from the terminal - ChainPatrol\">\u003cmeta data-mint-head property=\"og:description\" content=\"Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization\u0026#x27;s review from the terminal, with confirmation and dry-run support.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ChainPatrol\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://chainpatrol.com/docs/cli/commands/proposals\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://chainpatrol.mintlify.site/docs/_mintlify/api/og/v2?division=Command+Reference\u0026amp;title=proposals+command+%E2%80%94+review+proposals+from+the+terminal\u0026amp;description=Approve%2C+reject%2C+or+watchlist+the+ChainPatrol+proposals+waiting+on+your+organization%27s+review+from+the+terminal%2C+with+confirmation+and+dry-run+support.\u0026amp;theme=1a8d7dd79d865cbc4c2f5879\u0026amp;signature=d852195595585cc788af779dcece0dbd051c8db592211d165033a0789f17f7dd\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"proposals command — review proposals from the terminal - ChainPatrol\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization\u0026#x27;s review from the terminal, with confirmation and dry-run support.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://chainpatrol.mintlify.site/docs/_mintlify/api/og/v2?division=Command+Reference\u0026amp;title=proposals+command+%E2%80%94+review+proposals+from+the+terminal\u0026amp;description=Approve%2C+reject%2C+or+watchlist+the+ChainPatrol+proposals+waiting+on+your+organization%27s+review+from+the+terminal%2C+with+confirmation+and+dry-run+support.\u0026amp;theme=1a8d7dd79d865cbc4c2f5879\u0026amp;signature=d852195595585cc788af779dcece0dbd051c8db592211d165033a0789f17f7dd\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/chainpatrol/NioFQGDQy3PBOTVO/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ChainPatrol\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6622DC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://chainpatrol.com/docs/cli/commands/proposals\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/cli/commands/proposals.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://chainpatrol.com/#organization\",\"name\":\"ChainPatrol\",\"url\":\"https://chainpatrol.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/chainpatrol/R_CITzEDbsciFTsn/logo/light.svg?fit=max\u0026auto=format\u0026n=R_CITzEDbsciFTsn\u0026q=85\u0026s=8ca4a8411113008ec8f9a57dec249989\"}},{\"@type\":\"WebSite\",\"@id\":\"https://chainpatrol.com/docs#website\",\"name\":\"ChainPatrol\",\"url\":\"https://chainpatrol.com/docs\",\"publisher\":{\"@id\":\"https://chainpatrol.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://chainpatrol.com/docs/cli/commands/proposals#webpage\",\"url\":\"https://chainpatrol.com/docs/cli/commands/proposals\",\"name\":\"proposals command — review proposals from the terminal\",\"description\":\"Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization's review from the terminal, with confirmation and dry-run support.\",\"dateModified\":\"2026-08-18T17:56:15.786Z\",\"isPartOf\":{\"@id\":\"https://chainpatrol.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://chainpatrol.com/docs/cli/commands/proposals#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://chainpatrol.com/docs/cli/commands/proposals#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Command Reference\",\"item\":\"https://chainpatrol.com/docs/cli/commands/asset\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"proposals command — review proposals from the terminal\",\"item\":\"https://chainpatrol.com/docs/cli/commands/proposals\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://chainpatrol.com/docs/cli/commands/proposals#article\",\"headline\":\"proposals command — review proposals from the terminal\",\"name\":\"proposals command — review proposals from the terminal\",\"description\":\"Approve, reject, or watchlist the ChainPatrol proposals waiting on your organization's review from the terminal, with confirmation and dry-run support.\",\"url\":\"https://chainpatrol.com/docs/cli/commands/proposals\",\"mainEntityOfPage\":{\"@id\":\"https://chainpatrol.com/docs/cli/commands/proposals#webpage\"},\"dateModified\":\"2026-08-18T17:56:15.786Z\",\"publisher\":{\"@id\":\"https://chainpatrol.com/#organization\"},\"isPartOf\":{\"@id\":\"https://chainpatrol.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ChainPatrol\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"ChainPatrol","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/getting-started/what-we-do/introduction"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integration/discord"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/external-api/overview"}]},{"tab":"CLI","groups":[{"group":"ChainPatrol CLI","pages":[{"title":"ChainPatrol CLI","sidebarTitle":"Overview","icon":"terminal","href":"/cli/overview"},{"title":"Install the ChainPatrol CLI","icon":"download","href":"/cli/installation"},{"title":"ChainPatrol CLI Authentication","icon":"key","href":"/cli/authentication"},{"title":"Output and exit codes","sidebarTitle":"Output \u0026 exit codes","icon":"code","href":"/cli/output"},{"title":"Using the CLI with agents","sidebarTitle":"AI agents","icon":"robot","href":"/cli/agents"}]},{"group":"Command Reference","pages":[{"title":"asset command — check, list, and search assets","sidebarTitle":"asset","icon":"shield-check","href":"/cli/commands/asset"},{"title":"reports command — create, list, and search reports","sidebarTitle":"reports","icon":"flag","description":"Create ChainPatrol reports from the terminal, browse an organization's report queue with full filtering, and search by asset content to avoid duplicates.","href":"/cli/commands/reports"},{"title":"proposals command — review proposals from the terminal","sidebarTitle":"proposals","icon":"gavel","href":"/cli/commands/proposals"},{"title":"detections command — run and manage detection configs","sidebarTitle":"detections","icon":"radar","description":"Run ChainPatrol detection configs on demand, validate that they still return results, catch query drift, list suspected threats, and update a config.","href":"/cli/commands/detections"},{"title":"metrics command — query organization metrics","sidebarTitle":"metrics","icon":"chart-line","href":"/cli/commands/metrics"},{"title":"threats command — list confirmed blocked threats","sidebarTitle":"threats","icon":"skull","href":"/cli/commands/threats"},{"title":"takedowns command — list takedown records with filters","sidebarTitle":"takedowns","icon":"list-check","href":"/cli/commands/takedowns"},{"title":"orgs command — list and inspect organizations","sidebarTitle":"orgs","icon":"building","href":"/cli/commands/orgs"},{"title":"healthchecks command — list and run org healthchecks","sidebarTitle":"healthchecks","icon":"heart-pulse","href":"/cli/commands/healthchecks"},{"title":"queues command — snapshot review and takedown queues","sidebarTitle":"queues","icon":"layer-group","href":"/cli/commands/queues"},{"title":"presets command — run saved CLI workflows","sidebarTitle":"presets","icon":"play","href":"/cli/commands/presets"}]}]},{"tab":"JavaScript SDK","pages":[{"title":"JavaScript SDK","href":"/sdk/overview"}]},{"tab":"Glossary","pages":[{"title":"Glossary","href":"/glossary/overview"}]}]},"basePath":"","title":"proposals command — review proposals from the terminal - ChainPatrol","buildId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","deploymentId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","dynamics":[],"chunks":[]}