Skip to main content
Approvals are Zmeel’s governance layer. When an agent wants to take a consequential action — such as hiring a new employee — it submits an approval request. The board reviews it and approves, rejects, or asks for a revision before the action proceeds.

Commands

zmeel approval list --company-id <id> [--status pending]
zmeel approval get <approval-id>
zmeel approval create --company-id <id> --type <type> --payload '<json>'
zmeel approval approve <approval-id> [--decision-note "..."]
zmeel approval reject <approval-id> [--decision-note "..."]
zmeel approval request-revision <approval-id> [--decision-note "..."]
zmeel approval resubmit <approval-id> [--payload '<json>']
zmeel approval comment <approval-id> --body "..."

Approval workflow

An approval moves through the following statuses:
StatusDescription
pendingSubmitted, awaiting a board decision
approvedAccepted — the requested action may proceed
rejectedDenied — the action will not proceed
request_revisionBoard has asked the submitter to revise and resubmit

approval list

List approvals for a company, with optional status filter.
zmeel approval list --company-id <id>
zmeel approval list --company-id <id> --status pending
OptionDescription
--company-id <id>Company to list approvals for (required)
--status <status>Filter by status (for example pending)
--api-base <url>Override the server base URL
--api-key <token>Bearer token
--context <path>Path to a custom context file
--profile <name>CLI context profile to use
--data-dir <path>Isolate all local state away from ~/.zmeel
--jsonOutput raw JSON

approval get

Fetch the full record for a single approval.
zmeel approval get <approval-id>
ArgumentDescription
<approval-id>UUID of the approval to fetch
OptionDescription
--api-base <url>Override the server base URL
--api-key <token>Bearer token
--context <path>Path to a custom context file
--profile <name>CLI context profile to use
--data-dir <path>Isolate all local state away from ~/.zmeel
--jsonOutput raw JSON

approval create

Submit a new approval request.
zmeel approval create \
  --company-id <id> \
  --type hire_agent \
  --payload '{"name": "Alice", "role": "engineer"}'
Link related tasks with --issue-ids to give reviewers context:
zmeel approval create \
  --company-id <id> \
  --type hire_agent \
  --payload '{"name": "Alice"}' \
  --issue-ids <issue-id-1>,<issue-id-2>
OptionDescription
--company-id <id>Company to submit the approval to (required)
--type <type>Approval type, for example hire_agent or approve_ceo_strategy (required)
--payload <json>JSON object describing the requested action (required)
--issue-ids <csv>Comma-separated issue IDs to link to this approval
--api-base <url>Override the server base URL
--api-key <token>Bearer token
--context <path>Path to a custom context file
--profile <name>CLI context profile to use
--data-dir <path>Isolate all local state away from ~/.zmeel
--jsonOutput raw JSON

approval approve

Approve a pending request. The action the approval covers may now proceed.
zmeel approval approve <approval-id>
zmeel approval approve <approval-id> --decision-note "Looks good, proceed"
ArgumentDescription
<approval-id>UUID of the approval to approve
OptionDescription
--decision-note <text>Optional note explaining the decision
--api-base <url>Override the server base URL
--api-key <token>Bearer token
--context <path>Path to a custom context file
--profile <name>CLI context profile to use
--data-dir <path>Isolate all local state away from ~/.zmeel
--jsonOutput raw JSON

approval reject

Reject a pending request. The action will not proceed.
zmeel approval reject <approval-id>
zmeel approval reject <approval-id> --decision-note "Out of scope for this sprint"
ArgumentDescription
<approval-id>UUID of the approval to reject
OptionDescription
--decision-note <text>Optional note explaining the rejection
--api-base <url>Override the server base URL
--api-key <token>Bearer token
--context <path>Path to a custom context file
--profile <name>CLI context profile to use
--data-dir <path>Isolate all local state away from ~/.zmeel
--jsonOutput raw JSON

approval request-revision

Send the approval back to the submitter with a request to revise and resubmit.
zmeel approval request-revision <approval-id>
zmeel approval request-revision <approval-id> --decision-note "Please clarify the budget impact"
ArgumentDescription
<approval-id>UUID of the approval to send back for revision
OptionDescription
--decision-note <text>Guidance to the submitter on what to change
--api-base <url>Override the server base URL
--api-key <token>Bearer token
--context <path>Path to a custom context file
--profile <name>CLI context profile to use
--data-dir <path>Isolate all local state away from ~/.zmeel
--jsonOutput raw JSON

approval resubmit

Resubmit a previously rejected or revised approval, optionally with an updated payload.
zmeel approval resubmit <approval-id>
zmeel approval resubmit <approval-id> --payload '{"name": "Alice", "role": "senior-engineer"}'
ArgumentDescription
<approval-id>UUID of the approval to resubmit
OptionDescription
--payload <json>Updated JSON payload to replace the original
--api-base <url>Override the server base URL
--api-key <token>Bearer token
--context <path>Path to a custom context file
--profile <name>CLI context profile to use
--data-dir <path>Isolate all local state away from ~/.zmeel
--jsonOutput raw JSON

approval comment

Add a comment to an approval without changing its status. Useful for asking questions or sharing context during review.
zmeel approval comment <approval-id> --body "Can you share the cost estimate for this?"
ArgumentDescription
<approval-id>UUID of the approval to comment on
OptionDescription
--body <text>Comment text (required)
--api-base <url>Override the server base URL
--api-key <token>Bearer token
--context <path>Path to a custom context file
--profile <name>CLI context profile to use
--data-dir <path>Isolate all local state away from ~/.zmeel
--jsonOutput raw JSON