Nexudus CLI Agent Skill
You can manage Nexudus coworking spaces through the
CLI tool. This skill teaches you how to authenticate, query data, and perform CRUD operations against the Nexudus platform API.
Agent Invariants
-
Always use flag on every CLI call. This returns a structured JSON envelope optimised for machine consumption.
-
Parse the JSON envelope before acting on results. The envelope has this shape:
json
{
"ok": true,
"data": { ... },
"summary": "Human-readable summary",
"breadcrumbs": ["entity", "action"],
"meta": { "total": 10, "page": 1, "pageSize": 25, "totalPages": 1 }
}
-
Check first. If
is
, read
for the error message and stop.
-
Never prompt the user for credentials interactively. If
is
with an auth error, tell the user to run
manually.
-
Use or on delete commands to skip interactive confirmation prompts.
-
Use when you need raw data for scripting. Use
when you want the envelope with summary.
-
List responses omit collection properties. The API only returns list/array fields (e.g.,
,
,
) when fetching a
single entity by ID (
). List commands return a simplified projection without these fields. If you need to read or verify a collection property, always fetch the individual entity first.
-
Use the current user's defaults for business, currency, country, and timezone. Before creating or updating entities that require a business (location), currency, country, or timezone, run
and use the defaults from the response:
- — use as when creating entities scoped to a location.
- — use as when a currency is needed.
- — for display/reference purposes.
- — use as when a country is needed.
- — use as when a timezone is needed.
Only ask the user to specify these values if they explicitly want to override the defaults.
Bootstrapping
Run diagnostics first to verify the CLI is ready:
This returns CLI version, .NET runtime, OS, credential status, config file location, API connectivity, and all available commands. Check
and
before proceeding.
If credentials are missing, instruct the user:
Run
to authenticate with your Nexudus account.
CLI Introspection
Discover available commands and options at any time:
shell
nexudus --help
nexudus businesses --help
nexudus products --help
nexudus config --help
Each command also supports
for detailed option information:
shell
nexudus businesses update --help
nexudus products create --help
Command Reference
Authentication
| Command | Description |
|---|
| Authenticate (interactive prompt) |
| Clear stored credentials |
| Show current authenticated user |
Configuration
| Command | Description |
|---|
| Read a config value |
nexudus config set <key> <value>
| Set a config value |
Businesses
Businesses support Search, Get, and Update (no Create or Delete via API).
| Command | Description |
|---|
nexudus businesses list --agent
| List all businesses |
nexudus businesses list --query "London" --agent
| Search businesses by name |
nexudus businesses list --page 2 --size 10 --agent
| Paginated list |
nexudus businesses get <id> --agent
| Get single business |
nexudus businesses update <id> --name "New Name" --agent
| Update business fields |
Business update options
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Products
Products support full CRUD plus entity commands.
| Command | Description |
|---|
nexudus products list --agent
| List all products |
nexudus products list --query "Pass" --agent
| Search products by name |
nexudus products list --business <id> --agent
| Filter by business |
nexudus products list --page 2 --size 10 --agent
| Paginated list |
nexudus products get <id> --agent
| Get single product |
nexudus products create --name "Day Pass" --price 25.00 --business <id> --agent
| Create product |
nexudus products update <id> --name "New Name" --price 30.00 --agent
| Update product |
nexudus products delete <id> --yes --agent
| Delete product (no prompt) |
nexudus products commands --agent
| List available entity commands |
nexudus products run-command <key> <ids> --agent
| Run entity command |
Product create options
(required),
(required),
(required),
,
,
,
,
,
,
,
,
,
,
Product update options
,
,
,
,
,
,
,
,
,
,
,
,
,
Diagnostics
Global Flags
| Flag | Description |
|---|
| JSON envelope with summary (use this) |
| Raw JSON envelope |
| Markdown output |
| Override API base URL |
Output Envelope
All commands produce a JSON envelope when
or
is used:
json
{
"ok": true,
"data": [ ... ],
"summary": "Found 3 businesses (page 1/1)",
"breadcrumbs": ["businesses", "list"],
"meta": {
"total": 3,
"page": 1,
"pageSize": 25,
"totalPages": 1
}
}
- : on success, on failure.
- : The response payload — an object for single-entity operations, an array for lists, or null on some failures.
- : Human-readable result description.
- : Command path that produced the output (e.g., ).
- : Pagination metadata for list operations (present only on list commands).
Error envelope
json
{
"ok": false,
"data": null,
"summary": "Not logged in. Run 'nexudus login' first.",
"breadcrumbs": ["businesses", "list"]
}
Decision Trees
"Find and display a business"
nexudus businesses list --agent
(or if searching)
- Parse array, find the target business
nexudus businesses get <id> --agent
for full details
"Create a <entity>"
- First find the business ID:
nexudus businesses list --agent
nexudus <entity> create --name "Day Pass" --price 25.00 --business <businessId> --agent
- Check is , read for the new entity ID
"Update a <entity> <property>"
nexudus <entity> get <id> --agent
to verify the entity exists
nexudus <entity> update <id> --<property> <value> --agent
- Verify the update by checking the returned
"Delete a <entity>"
nexudus <entity> get <id> --agent
to confirm the entity exists
nexudus <entity> delete <id> --yes --agent
- Check is
"List <entity> for a specific business"
nexudus <entity> list --business <businessId> --agent
- For pagination: add
"Run an entity command on <entity>"
nexudus <entity> commands --agent
to discover available commands
nexudus <entity> run-command <commandKey> <id1,id2> --agent
- Add parameters with if the command requires them
"Check CLI health"
- Verify is
- Verify is
"Add passes to a product"
ProductTimePasses link a TimePass to a Product so that customers purchasing the product automatically receive those passes.
- Find the product:
nexudus products list --query "Dat Pass Bundle" --agent
→ note the
- Find (or create) the time pass:
nexudus timepasses list --query "Day Pass" --agent
→ note the
- Create the link:
shell
nexudus producttimepasses create \
--product-id <productId> \
--time-pass-id <timePassId> \
--passes-included 10 \
--expire-time-in-months 1 \
--expire-time-in-weeks 0 \
--expires-in 30 \
--agent
- Check is , read for the new link ID
"List passes included in a product"
nexudus producttimepasses list --agent
- Filter results where matches the target product
"Update passes included in a product"
nexudus producttimepasses list --agent
→ find the link by and
nexudus producttimepasses update <id> --passes-included 20 --agent
- Verify the update by checking the returned
"Remove a pass from a product"
nexudus producttimepasses list --agent
→ find the link by and
nexudus producttimepasses delete <id> --yes --agent
- Check is
Error Handling
| Error | Meaning | Action |
|---|
| , summary contains "Not logged in" | No stored credentials | Tell user to run |
| , summary contains "Unauthorized" | Invalid credentials | Tell user to run again |
| , summary contains "Forbidden" | Insufficient permissions | Inform user they lack API permissions |
| , summary contains "not found" | Entity doesn't exist | Check the ID and try again |
| , summary contains "Failed to create" | Create validation error | Check required fields (name, business, price) |
| Non-zero exit code | Command failed | Read stderr or the JSON envelope for details |
Entity Models
Business (key fields)
,
,
,
,
,
,
,
,
,
,
,
,
,
Products
Products support Search, Get, Create, Update, Delete.
Products also support entity commands.
| Command | Description |
|---|
nexudus products list --agent
| List all products |
nexudus products list --query "search" --agent
| Search products by name |
nexudus products list --page 2 --size 10 --agent
| Paginated list |
nexudus products get <id> --agent
| Get single product |
nexudus products create --business <value> --name <value> --price <value> --description <value> --agent
| Create product |
nexudus products update <id> --name "New Name" --agent
| Update product |
nexudus products delete <id> --yes --agent
| Delete product (no prompt) |
nexudus products commands --agent
| List available entity commands |
nexudus products run-command <key> <ids> --agent
| Run entity command |
Product create options
(required),
(required),
(required),
(required),
,
,
,
,
,
,
,
,
,
,
Product update options
,
,
,
,
,
,
,
,
,
,
,
,
,
Product (key fields)
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
TimePasses
Passes allow customers to check in to a coworking space. There are two kinds:
- Day Pass — valid for a single calendar day. Created with omitted (null). The customer can check in any number of times during that day.
- Time Pass — valid across multiple days up to a fixed amount of time. Created with
--minutes-included <minutes>
set. The customer can check in until the included minutes are exhausted.
TimePasses support Search, Get, Create, Update, Delete.
| Command | Description |
|---|
nexudus timepasses list --agent
| List all timepasses |
nexudus timepasses list --query "search" --agent
| Search timepasses by name |
nexudus timepasses list --page 2 --size 10 --agent
| Paginated list |
nexudus timepasses get <id> --agent
| Get single timepass |
nexudus timepasses create --business <value> --name <value> --agent
| Create timepass |
nexudus timepasses update <id> --name "New Name" --agent
| Update timepass |
nexudus timepasses delete <id> --yes --agent
| Delete timepass (no prompt) |
TimePass create options
(required),
(required),
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
TimePass update options
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
TimePass (key fields)
ProductTimePasses
ProductTimePasses support Search, Get, Create, Update, Delete.
| Command | Description |
|---|
nexudus producttimepasses list --agent
| List all producttimepasses |
nexudus producttimepasses list --query "search" --agent
| Search producttimepasses by name |
nexudus producttimepasses list --page 2 --size 10 --agent
| Paginated list |
nexudus producttimepasses get <id> --agent
| Get single producttimepass |
nexudus producttimepasses create --product-id <value> --time-pass-id <value> --passes-included <value> --expire-time-in-months <value> --expire-time-in-weeks <value> --expires-in <value> --agent
| Create producttimepass |
nexudus producttimepasses update <id> --name "New Name" --agent
| Update producttimepass |
nexudus producttimepasses delete <id> --yes --agent
| Delete producttimepass (no prompt) |
ProductTimePass create options
(required),
(required),
(required),
(required),
(required),
,
(required)
ProductTimePass update options
ProductTimePass (key fields)
Resources
Resources support Search, Get, Create, Update, Delete.
| Command | Description |
|---|
nexudus resources list --agent
| List all resources |
nexudus resources list --query "search" --agent
| Search resources by name |
nexudus resources list --page 2 --size 10 --agent
| Paginated list |
nexudus resources get <id> --agent
| Get single resource |
nexudus resources create --business <value> --name <value> --resource-type-id <value> --agent
| Create resource |
nexudus resources update <id> --name "New Name" --agent
| Update resource |
nexudus resources delete <id> --yes --agent
| Delete resource (no prompt) |
Resource create options
(required),
(required),
,
(required),
,
--email-confirmation-content
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
--allow-multiple-bookings
,
,
--limit-visitors-to-allocation
,
,
,
--late-cancellation-limit
,
,
,
--no-return-policy-all-resources
,
--no-return-policy-all-users
,
,
,
(list, repeat flag),
(list, repeat flag),
(list, repeat flag),
(list, repeat flag),
(list, repeat flag),
(list, repeat flag),
,
(list, repeat flag),
(list, repeat flag),
--removed-linked-resources
(list, repeat flag),
,
,
,
,
--use-shared-zoom-account
,
,
,
,
,
,
--only-for-invoicing-business
,
--booking-availability-exceptions
(list, repeat flag),
--added-booking-availability-exceptions
(list, repeat flag),
--removed-booking-availability-exceptions
(list, repeat flag),
--cancellation-fee-product-id
,
--charge-cancellation-fee
,
,
--cancellation-fee-amount
,
--cancellation-fee-percentage
,
--repeat-booking-quantity-limit
,
--repeat-booking-period-limit-in-months
,
,
,
Resource update options
,
,
,
,
--email-confirmation-content
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
--allow-multiple-bookings
,
,
--limit-visitors-to-allocation
,
,
,
--late-cancellation-limit
,
,
,
--no-return-policy-all-resources
,
--no-return-policy-all-users
,
,
,
(list, repeat flag),
(list, repeat flag),
(list, repeat flag),
(list, repeat flag),
(list, repeat flag),
(list, repeat flag),
,
(list, repeat flag),
(list, repeat flag),
--removed-linked-resources
(list, repeat flag),
,
,
,
,
--use-shared-zoom-account
,
,
,
,
,
,
--only-for-invoicing-business
,
--booking-availability-exceptions
(list, repeat flag),
--added-booking-availability-exceptions
(list, repeat flag),
--removed-booking-availability-exceptions
(list, repeat flag),
--cancellation-fee-product-id
,
--charge-cancellation-fee
,
,
--cancellation-fee-amount
,
--cancellation-fee-percentage
,
--repeat-booking-quantity-limit
,
--repeat-booking-period-limit-in-months
,
,
,
Resource (key fields)
,
,
,
,
,
,
,
,
,
,
,
List properties (only returned by , not by ): ,
,
,
,
,
,
,
,
,
BookingAvailabilityExceptions
,
AddedBookingAvailabilityExceptions
,
RemovedBookingAvailabilityExceptions
Resource Type (): Every resource requires a
that references an
entity. The resource type defines the hourly/daily rates and billing rules for bookings. You cannot create a resource without first knowing the ID of an existing resource type.
ResourceTypes
ResourceTypes support Search, Get, Create, Update, Delete.
| Command | Description |
|---|
nexudus resourcetypes list --agent
| List all resourcetypes |
nexudus resourcetypes list --query "search" --agent
| Search resourcetypes by name |
nexudus resourcetypes list --page 2 --size 10 --agent
| Paginated list |
nexudus resourcetypes get <id> --agent
| Get single resourcetype |
nexudus resourcetypes create --business <value> --agent
| Create resourcetype |
nexudus resourcetypes update <id> --name "New Name" --agent
| Update resourcetype |
nexudus resourcetypes delete <id> --yes --agent
| Delete resourcetype (no prompt) |
ResourceType create options
ResourceType update options
ResourceType (key fields)
Currencies
Currencies support Search, Get (no Create or Delete via API).
| Command | Description |
|---|
nexudus currencies list --agent
| List all currencies |
nexudus currencies list --query "search" --agent
| Search currencies by name |
nexudus currencies list --page 2 --size 10 --agent
| Paginated list |
nexudus currencies get <id> --agent
| Get single currency |
Countries
Countries support Search, Get (no Create or Delete via API).
| Command | Description |
|---|
nexudus countries list --agent
| List all countries |
nexudus countries list --query "search" --agent
| Search countries by name |
nexudus countries list --page 2 --size 10 --agent
| Paginated list |
nexudus countries get <id> --agent
| Get single country |
Country (key fields)
Currency (key fields)
Image Uploads
Some entities have image properties (logo, banner, picture, etc.). To set an image, use the corresponding
property, which accepts a
publicly accessible URL. The Nexudus back-end downloads the image from that URL and stores it, so the URL must be reachable from the internet — local file paths or authenticated URLs will not work.
The naming convention is: for an image property called
, the upload property is
.
| Entity | Image Property | CLI Option | API Property |
|---|
| Business | Logo | | |
| Business | BannerImage | | |
| Business | NexIoBannerImage | | |
| Business | PassportBanner | | |
| Resource | Picture | | |
Example — set a logo on a business:
shell
nexudus businesses update <id> --logo-url "https://example.com/logo.png" --agent
Example — set a picture on a resource:
shell
nexudus resources update <id> --new-picture-url "https://example.com/room.jpg" --agent
Nexudus API Pattern
The Nexudus API follows a consistent REST pattern. Each entity at
supports:
| Operation | HTTP | URL |
|---|
| Search | GET | /api/{module}/{entities}?page=1&size=25
|
| Get one | GET | /api/{module}/{entities}/{id}
|
| Create | POST | |
| Update | PUT | |
| Delete | DELETE | /api/{module}/{entities}/{id}
|
| Commands | GET | /api/{module}/{entities}/commands
|
| Run command | POST | /api/{module}/{entities}/runCommand
|
Current entity mappings:
| Entity | Module | Path |
|---|
| Business | sys | businesses |
| Product | billing | products |
| TimePass | billing | timepasses |
| ProductTimePass | billing | producttimepasses |
| Resource | spaces | resources |
| ResourceType | spaces | resourcetypes |
| Currency | sys | currencies |
| Country | sys | countries |
Passing Multiple Values (List Options)
Some options accept a list of IDs (e.g.,
,
,
). To pass multiple values,
repeat the flag for each value:
shell
nexudus resources update <id> --tariffs 101 --tariffs 202 --tariffs 303 --agent
Do not use comma-separated values or bracket syntax — each value needs its own flag.
Tips
- Use to fetch larger pages when you need to scan many records.
- Combine with pagination for efficient searching.
- The accepts comma-separated IDs to batch operations:
nexudus products run-command archive 123,456,789 --agent
.
- Business entities cannot be created or deleted via the API — only listed, viewed, and updated.
- Always pass with delete commands whegin running non-interactively.