@bhumika-ai/op
v0.1.2
Published
CLI for managing OpenProject — projects, work packages, users, and more
Readme
@bhumika-ai/op
A command-line interface for managing OpenProject instances. Manage projects, work packages, users, relations, and more — straight from the terminal.
Installation
npm install -g @bhumika-ai/opThis installs a platform-specific compiled binary (no runtime dependencies required). Supported platforms:
| Platform | Architecture | |----------|-------------| | Linux | x64, arm64 | | macOS | x64, arm64 | | Windows | x64 |
Authentication
Log in to your OpenProject instance before running any other commands.
API token (recommended):
op auth login https://openproject.example.com --token YOUR_API_TOKENBasic auth (username + password):
op auth login https://openproject.example.com --user admin --password secretCredentials are stored locally via the conf library. Run op config show to see the config file path.
Quick Start
# List all projects
op projects list
# Create a work package
op wp create --project my-project --subject "Fix login bug" --type 1 --priority 2
# View a work package
op wp view 42
# Show the dependency graph for a work package
op wp relations graph 42 --depth 4
# Check your notification inbox
op inbox list
# See who you're logged in as
op users meCommand Reference
op auth — Manage authentication
| Command | Description |
|---------|-------------|
| op auth login <url> | Log in to an OpenProject instance |
| op auth status | Show authentication status |
| op auth logout | Log out and clear stored credentials |
op auth login <url> options:
| Option | Description |
|--------|-------------|
| --token <token> | Authenticate with an API token |
| --user <username> | Username for basic auth |
| --password <password> | Password for basic auth |
Provide either --token or both --user and --password.
op config — Manage CLI configuration
| Command | Description |
|---------|-------------|
| op config set-url <url> | Set the OpenProject instance URL |
| op config set-token <token> | Set the API authentication token |
| op config show | Show current configuration |
op projects — Manage projects
Alias: op project
| Command | Description |
|---------|-------------|
| op projects list | List all projects |
| op projects view <id> | View a project by ID or identifier |
| op projects create | Create a new project |
| op projects update <id> | Update a project |
| op projects delete <id> | Delete a project |
op projects list options:
| Option | Description | Default |
|--------|-------------|---------|
| -p, --page <number> | Page number | 1 |
| -s, --page-size <number> | Items per page | 20 |
| -a, --all | Fetch all pages | — |
Alias: op projects ls
op projects create options:
| Option | Description | Required |
|--------|-------------|----------|
| -n, --name <name> | Project name | Yes |
| -i, --identifier <id> | Project identifier (slug) | No |
| -d, --description <text> | Project description | No |
| --public | Make the project public | No |
op projects update <id> options:
| Option | Description |
|--------|-------------|
| -n, --name <name> | New project name |
| -d, --description <text> | New description |
| --public | Make public |
| --private | Make private |
op work-packages — Manage work packages
Alias: op wp
| Command | Description |
|---------|-------------|
| op wp list | List work packages |
| op wp view <id> | View a work package by ID |
| op wp create | Create a new work package |
| op wp update <id> | Update a work package |
| op wp delete <id> | Delete a work package |
op wp list options:
| Option | Description | Default |
|--------|-------------|---------|
| --project <id> | Filter by project ID or identifier | — |
| --status <name> | Filter by status name | — |
| --assignee <name> | Filter by assignee name | — |
| --type <name> | Filter by type name | — |
| --include-closed | Include closed work packages | off |
| -p, --page <number> | Page number | 1 |
| -s, --page-size <number> | Items per page | 20 |
| -a, --all | Fetch all pages | — |
Alias: op wp ls
By default, only open work packages are shown. Use --include-closed to see everything.
op wp create options:
| Option | Description | Required |
|--------|-------------|----------|
| --project <id> | Project ID | Yes |
| --subject <text> | Work package subject | Yes |
| --type <id> | Type ID | No |
| --status <id> | Status ID | No |
| --priority <id> | Priority ID | No |
| --assignee <id> | Assignee user ID | No |
| --parent <id> | Parent work package ID | No |
| --description <text> | Description (markdown) | No |
| --start-date <date> | Start date (YYYY-MM-DD) | No |
| --due-date <date> | Due date (YYYY-MM-DD) | No |
| --estimated-time <duration> | Estimated time (e.g. PT8H) | No |
| --no-notify | Suppress email notifications | No |
op wp update <id> options:
| Option | Description |
|--------|-------------|
| --subject <text> | New subject |
| --status <id> | New status ID |
| --priority <id> | New priority ID |
| --assignee <id> | New assignee user ID |
| --type <id> | New type ID |
| --parent <id> | New parent work package ID |
| --description <text> | New description (markdown) |
| --start-date <date> | Start date (YYYY-MM-DD) |
| --due-date <date> | Due date (YYYY-MM-DD) |
| --estimated-time <duration> | Estimated time (e.g. PT8H) |
| --no-notify | Suppress email notifications |
op wp attachments — Work package attachments
| Command | Description |
|---------|-------------|
| op wp attachments list <wp-id> | List attachments on a work package |
| op wp attachments upload <wp-id> | Upload a file to a work package |
| op wp attachments download <attachment-id> | Download an attachment |
op wp comments — Work package comments
| Command | Description |
|---------|-------------|
| op wp comments list <wp-id> | List comments on a work package |
| op wp comments add <wp-id> | Add a comment to a work package |
| op wp comments update <activity-id> | Update a comment |
op wp relations — Work package relations
Alias: op wp rel
| Command | Description |
|---------|-------------|
| op wp relations list <wp-id> | List relations for a work package |
| op wp relations add <wp-id> | Create a relation from a work package |
| op wp relations update <relation-id> | Update a relation |
| op wp relations remove <relation-id> | Delete a relation |
| op wp relations graph <wp-id> | Display a dependency graph |
op wp relations add <wp-id> options:
| Option | Description | Required |
|--------|-------------|----------|
| --to <wp-id> | Target work package ID | Yes |
| --type <type> | Relation type (see below) | Yes |
| --lag <days> | Lag in working days (for follows/precedes) | No |
| --description <text> | Description of the relation | No |
Valid relation types: relates, duplicates, duplicated, blocks, blocked, precedes, follows, includes, partof, requires, required
op wp relations graph <wp-id> options:
| Option | Description | Default |
|--------|-------------|---------|
| --depth <n> | Maximum traversal depth | 3 |
| --types <types> | Comma-separated relation types to include | all |
op users — Manage users
Alias: op user
| Command | Description |
|---------|-------------|
| op users list | List users |
| op users view <id> | View a user by ID |
| op users find <name> | Search for a user by name |
| op users me | View the currently authenticated user |
op inbox — Notification inbox
| Command | Description |
|---------|-------------|
| op inbox list | List unread notifications |
| op inbox view <id> | View a notification |
| op inbox read <id> | Mark a notification as read |
| op inbox read-all | Mark all notifications as read |
| op inbox unread <id> | Mark a notification as unread |
op statuses — View work package statuses
| Command | Description |
|---------|-------------|
| op statuses list | List all available statuses |
op types — View work package types
| Command | Description |
|---------|-------------|
| op types list | List all work package types |
op priorities — View priority levels
| Command | Description |
|---------|-------------|
| op priorities list | List all priority levels |
op admin users — Administrative user management
Requires admin privileges on the OpenProject instance.
| Command | Description |
|---------|-------------|
| op admin users create | Create a new user |
| op admin users update <id> | Update a user |
| op admin users delete <id> | Delete a user |
| op admin users lock <id> | Lock a user account |
| op admin users unlock <id> | Unlock a user account |
Pagination
All list commands support pagination:
| Option | Description | Default |
|--------|-------------|---------|
| -p, --page <number> | Page number | 1 |
| -s, --page-size <number> | Items per page | 20 |
| -a, --all | Fetch all pages | — |
Aliases
| Long form | Short form |
|-----------|------------|
| op projects | op project |
| op projects list | op projects ls |
| op work-packages | op wp |
| op work-packages list | op wp ls |
| op work-packages relations | op wp rel |
| op users | op user |
| op users list | op users ls |
| op statuses | op status |
| op types | op type |
| op priorities | op priority |
| op admin users | op admin user |
Requirements
- An OpenProject instance (v13+) with API access enabled
License
UNLICENSED
