Use these commands to publish events, courses, content, quests and jobs, and to run what happens around them: RSVPs, enrollments, attendance, quest evidence and job applications. All of them print JSON. Conventions such as exit codes, --file merging and --account are on the main CLI command reference.
These commands also exist in CLI version 0.3, so nothing on this page carries the (0.4+) marker.
#Common actions
posts, events, courses, content, quests and jobs share the same five actions. Replace <kind> with the family name.
| Command | What it does | Flags | Scopes |
|---|---|---|---|
hive3 <kind> list | Lists items, newest first, archived items left out. | --limit <n>, --cursor <cursor>, --owner-type <type>, --community-id <id> | resources:read (posts:read for posts) |
hive3 <kind> get <id> | Reads one item you can see. | None | resources:read (posts:read) |
hive3 <kind> create | Creates an item. Prints the new item as JSON. | Fields, owner options and --idempotency-key below | resources:write (posts:write) |
hive3 <kind> update <id> | Changes fields of an item. At least one field is required. | Fields below and --file; no owner options | resources:write (posts:write) |
hive3 <kind> archive <id> | Archives the item; it is not deleted. | None | resources:write (posts:write) |
For an item owned by a community, add communities:write to the write scopes and communities:read to reads on other accounts, and you need a current role there.
| Field flag | Sets |
|---|---|
--title <text> | title (required for everything except posts) |
--body <text> | body (required for posts) |
--description <text> | description |
--content-type <type> | contentType (used by content) |
--image-url <url> | imageUrl |
--visibility <value> | public, protected or private. Anything other than public needs Honey Bee or above on the owning account. |
--file <path> | A JSON object with any other fields. See payload files. |
| Owner and list flag | What it does |
|---|---|
--owner-type <type> | person or community. On create it picks who owns the new item. On list it only works together with --community-id; it is not a type filter. |
--community-id <id> | The community's account ID. Required whenever --owner-type is community. |
--idempotency-key <key> | Makes a retried create safe. See idempotency. |
--account is not supported on these commands; use --owner-type community --community-id <account-id> to create for an account you help run, after hive3 capabilities shows it.
Things to know before you create:
- Events need RSVP approval by default. Put
"autoEnroll": truein the file to accept attendees automatically.eventSlotsentries need ISO 8601startsAtandendsAtwith aZor offset, and each end must come after its start. - Quests need
questCreditPlan(singlefor quests up to 7 days,bundlefor up to 30) and spend one quest credit of the owning account. A credited quest needs a validstartsAt. - Once an event or quest has started,
updateandarchivereturn409 conflict. - Plan rules apply as in the app. A Worker Bee account publishes publicly only and cannot attach subscriptions.
{
"title": "Portfolio night",
"description": "Bring two projects for feedback.",
"visibility": "public",
"autoEnroll": true,
"location": "Online",
"eventSlots": [
{ "startsAt": "2026-12-12T18:00:00Z", "endsAt": "2026-12-12T20:00:00Z" }
]
}hive3 events create --file event.json --idempotency-key portfolio-night-2026
hive3 events list --limit 5
hive3 events archive "<event-id>"hive3 capabilities
hive3 posts create --body "Moderator update" --owner-type community --community-id "<account-id>"#Events
| Command | What it does | Flags | Scopes |
|---|---|---|---|
hive3 events participants <event-id> | Lists RSVPs. Event managers only; the list includes primary email addresses. | None | resources:read |
hive3 events rsvp <event-id> | Creates your RSVP, or withdraws it. | --enroll <bool> (false withdraws), --file <path> | resources:write |
hive3 events approve <event-id> <enrollment-id> | Approves an RSVP. Needs the person's current access to the event. | None | resources:write |
hive3 events deny <event-id> <enrollment-id> | Denies an RSVP. | None | resources:write |
hive3 events attendance <event-id> <enrollment-id> | Records attendance. | --attended <bool>, --file <path> | resources:write |
RSVPs share the app's limits of 10 per minute and 100 per day. Attendance needs an approved RSVP on an event that is not archived; the first recorded time is kept, the attendee is notified, and clearing attendance (--attended false) is refused with 409 conflict. Treat approving, denying and recording attendance as decisions that need a human check.
#Courses
| Command | What it does | Flags | Scopes |
|---|---|---|---|
hive3 courses enrollments <course-id> | Lists enrollments. Course managers only. | None | resources:read |
hive3 courses enroll <course-id> | Enrolls you, or withdraws. | --enroll <bool>, --file <path> | resources:write |
hive3 courses approve <course-id> <account-id> | Approves a student's enrollment. <account-id> is the student's account ID. | None | resources:write |
hive3 courses deny <course-id> <account-id> | Denies a student's enrollment. | None | resources:write |
hive3 courses complete <course-id> <lesson-id> | Marks a lesson complete for you. | None | resources:write |
{
"title": "Intro to critique",
"description": "Four short lessons.",
"visibility": "public",
"lessons": [
{ "id": "lesson-1", "title": "Give useful feedback" },
{ "id": "lesson-2", "title": "Receive feedback" }
]
}#Content
hive3 content has only the common actions, with --content-type <type> choosing the kind of content (the default is article).
{
"title": "Welcome guide",
"description": "How this community works.",
"contentType": "article",
"visibility": "public"
}#Quests
| Command | What it does | Flags | Scopes |
|---|---|---|---|
hive3 quests enrollments <quest-id> | Lists enrollments. Quest managers only. | None | resources:read |
hive3 quests enroll <quest-id> | Enrolls you, or withdraws. | --enroll <bool>, --file <path> | resources:write |
hive3 quests approve <quest-id> <enrollment-id> | Approves an enrollment. | None | resources:write |
hive3 quests deny <quest-id> <enrollment-id> | Denies an enrollment. | None | resources:write |
hive3 quests evidence list <quest-id> | Lists submitted evidence. | --status <status>, for example pending | resources:read |
hive3 quests evidence submit <quest-id> | Submits evidence for an objective. | --objective-id <id> (required), --content <text>, --file <path> | resources:write |
hive3 quests evidence approve <quest-id> <evidence-id> | Approves evidence. | None | resources:write |
hive3 quests evidence deny <quest-id> <evidence-id> | Denies evidence. | None | resources:write |
{
"title": "Ship a portfolio page",
"description": "Publish a page and share the link.",
"questCreditPlan": "single",
"startsAt": "2026-12-01T00:00:00Z",
"endsAt": "2026-12-05T00:00:00Z",
"objectives": [
{ "id": "objective-1", "type": "custom", "completionCriteria": "Submit a link", "evidenceType": "link" }
]
}To attach a file as evidence, upload it first and reference the returned upload ID. Use the byteSize and contentType of the file you uploaded.
{
"attachments": [
{ "storageId": "<upload-id>", "fileName": "proof.pdf", "contentType": "application/pdf", "byteSize": 100000 }
]
}hive3 upload ./proof.pdf --purpose document
hive3 quests evidence submit "<quest-id>" --objective-id objective-1 --content "https://proof.example" --file evidence.json
hive3 quests evidence list "<quest-id>" --status pending
hive3 quests evidence approve "<quest-id>" "<evidence-id>"#Jobs
| Command | What it does | Flags | Scopes |
|---|---|---|---|
hive3 jobs apply <job-id> | Applies to a job. The file must contain resume. | --file <path> (required) | resources:write |
hive3 jobs applications <job-id> | Lists applications to a job. Job managers only; includes primary email addresses. | None | resources:read |
hive3 jobs applications | Lists your own applications. | None | resources:read |
hive3 jobs status <application-id> | Changes an application's status. | --status <status> (required): pending, reviewed, accepted or rejected | resources:write |
resume and the optional coverLetter each need fileName, contentType and a positive byteSize, plus a storageId from hive3 upload --purpose document.
{
"resume": { "storageId": "<upload-id>", "fileName": "resume.pdf", "contentType": "application/pdf", "byteSize": 124000 },
"coverLetter": { "storageId": "<upload-id>", "fileName": "cover-letter.pdf", "contentType": "application/pdf", "byteSize": 84000 }
}{
"title": "Community manager",
"description": "Run weekly events and welcome new members.",
"employerName": "Design Guild",
"location": "Remote",
"visibility": "public"
}Participant, enrollment and application lists include each person's primary email address when you manage the resource. Keep that output out of logs, chats and prompts.