@lucid-bio/cli
Command-line interface for Lucid.
Repository development runs this CLI with Bun via bun run --cwd packages/cli cli -- .... The published npm executable keeps a Node.js shebang so existing global npm install -g @lucid-bio/cli consumers can continue to launch lucid without installing Bun.
Installation
npm install -g @lucid-bio/cli
Configuration
The CLI requires a Supabase URL and Service Role Key to interact with your Lucid instance. You can provide these via environment variables:
LUCID_SUPABASE_URL: Your Supabase project URL.
LUCID_SUPABASE_SERVICE_ROLE_KEY: Your Supabase service role key.
Alternatively, you can create a .env file in your current working directory.
Usage
lucid --help
Examples
List work items:
lucid work-item:list --team-id <team-id>
Create a work item:
lucid work-item:create --team-id <team-id> --user-id <user-id> --kind task --title "My Task" --body "Task description"
Upload a generated document:
lucid document:upload --team-id <team-id> --owner-id <user-id> --file ./proposal.md --file-name proposal.md --file-type text/markdown
Upload a review-time attachment and bind it to a work item:
lucid document:upload --team-id <team-id> --owner-id <user-id> --file ./review-notes.md --file-name review-notes.md --file-type text/markdown
lucid work-item:add-attachment --work-item-id <work-item-id> --document-id <document-id> --attachment-role source_data --actor <reviewer-id>
Bind an uploaded document to a work item result without changing status:
lucid work-item:set-result-document --work-item-id <work-item-id> --document-id <document-id> --actor worker:lucid-runner
Move a work item to review with an explicit uploaded result document:
lucid work-item:review --work-item-id <work-item-id> --run-id <run-id> --worker worker:lucid-runner --result-summary "Ready for review" --result-document-id <document-id>
Attach run logs alongside the uploaded result document:
lucid document:upload --team-id <team-id> --owner-id <user-id> --file ./agent.log --file-name agent.log --file-type text/plain
lucid work-item:review --work-item-id <work-item-id> --run-id <run-id> --worker worker:lucid-runner --result-summary "Ready for review" --result-document-id <document-id> --log-document-id <log-document-id>
lucid work-item:complete --work-item-id <work-item-id> --run-id <run-id> --worker worker:lucid-runner --result-summary "Completed" --result-document-id <document-id> --log-document-id <log-document-id>
Repeat a review round after feedback:
lucid work-item:refine --work-item-id <work-item-id> --actor <reviewer-id> --feedback "Please regenerate with the revised summary"
lucid work-item:claim --worker worker:lucid-runner --team-id <team-id>
lucid document:upload --team-id <team-id> --owner-id <user-id> --file ./round-2.md --file-name round-2.md --file-type text/markdown
lucid document:upload --team-id <team-id> --owner-id <user-id> --file ./round-2.log --file-name round-2.log --file-type text/plain
lucid work-item:set-result-document --work-item-id <work-item-id> --document-id <document-id> --actor worker:lucid-runner
lucid work-item:review --work-item-id <work-item-id> --run-id <run-id> --worker worker:lucid-runner --result-summary "Round 2 ready for review" --result-document-id <document-id> --log-document-id <round-2-log-document-id>
work-item:claim starts the returned run. work-item:start remains available for older scripts, but new workflows should continue from the run ID returned by claim.