---
name: workspace-commands
description: The shell commands, task tools, and python3 interpreter available in this workspace.
---
# Available commands
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq unzip curl
with pipes, `>` redirection, `$(...)` substitution and `$'...'`.
The task CLIs below are registered with this shell rather than installed
as files; do not inspect them with `which`, `file` or `/usr/bin`.
## woocommerce
Use `woocommerce <command> '<JSON arguments>'`. Run
`woocommerce <command> --help` to get more information.
| Command | Arguments | Description |
|---|---|---|
| `woocommerce products-list` | `{perPage?: int, page?: int, search?: str, status?: "publish" \| "draft" \| "private" \| "pending", category?: str, tag?: str, sku?: str, featured?: bool, onSale?: bool, minPrice?: str, maxPrice?: str, stockStatus?: "instock" \| "outofstock" \| "onbackorder", orderby?: "date" \| "id" \| "include" \| "title" \| "slug" \| "price" \| "popularity" \| "rating", order?: "asc" \| "desc"}` | List products with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — `perPage`: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; `page`: Page number for pagination (default: 1). Use with perPage to navigate through results.; `search`: Search term; `status`: Product status; `category`: Category ID; `tag`: Tag ID; `sku`: Product SKU; `featured`: Featured products only; `onSale`: On sale products only; `minPrice`: Minimum price; `maxPrice`: Maximum price; `stockStatus`: Stock status; `orderby`: Order by field; `order`: Order direction |
| `woocommerce products-get` | `{productId: int}` | Get a specific product by ID — `productId`: Product ID |
| `woocommerce products-create` | `{productData: {name?: str, type?: "simple" \| "grouped" \| "external" \| "variable", status?: "publish" \| "draft" \| "private" \| "pending", featured?: bool, catalog_visibility?: "visible" \| "catalog" \| "search" \| "hidden", description?: str, short_description?: str, sku?: str, regular_price?: str, sale_price?: str, manage_stock?: bool, stock_quantity?: int, categories?: list[{id?: int}], images?: list[{src?: str, alt?: str}]}}` | Create a new product — `productData`: Product data; `productData.name`: Product name; `productData.type`: Product type; `productData.status`: Product status; `productData.featured`: Featured product; `productData.catalog_visibility`: Catalog visibility; `productData.description`: Product description; `productData.short_description`: Product short description; `productData.sku`: Product SKU; `productData.regular_price`: Regular price; `productData.sale_price`: Sale price; `productData.manage_stock`: Manage stock; `productData.stock_quantity`: Stock quantity; `productData.categories`: Product categories; `productData.categories.id`: Category ID; `productData.images`: Product images; `productData.images.src`: Image URL; `productData.images.alt`: Image alt text |
| `woocommerce products-update` | `{productId: int, productData: dict}` | Update a product — `productId`: Product ID; `productData`: Product data to update |
| `woocommerce products-delete` | `{productId: int, force?: bool = false}` | Delete a product — `productId`: Product ID; `force`: Force delete |
| `woocommerce products-batch-update` | `{create?: list[dict], update?: list[{id?: int}], delete?: list[int]}` | Batch update products — `create`: Products to create; `update`: Products to update; `update.id`: Product ID; `delete`: Product IDs to delete |
| `woocommerce products-variations-list` | `{productId: int, perPage?: int, page?: int}` | List product variations. Use perPage and page parameters for pagination (default: 10 items per page). — `productId`: Product ID; `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce products-categories-list` | `{perPage?: int, page?: int, search?: str, parent?: int, hideEmpty?: bool}` | List product categories. Use perPage and page parameters for pagination (default: 10 items per page). — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1); `search`: Search term; `parent`: Parent category ID; `hideEmpty`: Hide empty categories |
| `woocommerce products-categories-create` | `{categoryData: {name: str, slug?: str, parent?: int, description?: str, display?: "default" \| "products" \| "subcategories" \| "both", image?: {src?: str, alt?: str}, menuOrder?: int}}` | Create a new product category — `categoryData.name`: Category name; `categoryData.slug`: Category slug; `categoryData.parent`: Parent category ID; `categoryData.description`: Category description; `categoryData.display`: Display type; `categoryData.image.src`: Image URL; `categoryData.image.alt`: Image alt text; `categoryData.menuOrder`: Menu order |
| `woocommerce products-tags-list` | `{perPage?: int, page?: int, search?: str, hideEmpty?: bool}` | List product tags. Use perPage and page parameters for pagination (default: 10 items per page). — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1); `search`: Search term; `hideEmpty`: Hide empty tags |
| `woocommerce products-reviews-list` | `{productId?: int, perPage?: int, page?: int, status?: "all" \| "hold" \| "approved" \| "spam" \| "trash"}` | List product reviews. Use perPage and page parameters for pagination (default: 10 items per page). — `productId`: Product ID (optional); `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1); `status`: Review status |
| `woocommerce orders-list` | `{perPage?: int, page?: int, status?: list["pending" \| "processing" \| "on-hold" \| "completed" \| "cancelled" \| "refunded" \| "failed"], customer?: int, product?: int, dateAfter?: str, dateBefore?: str, orderby?: "date" \| "id" \| "include" \| "title" \| "slug", order?: "asc" \| "desc"}` | List orders with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — `perPage`: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; `page`: Page number for pagination (default: 1). Use with perPage to navigate through results.; `status`: Order statuses; `customer`: Customer ID; `product`: Product ID; `dateAfter`: Orders after this date (ISO 8601); `dateBefore`: Orders before this date (ISO 8601); `orderby`: Order by field; `order`: Order direction |
| `woocommerce orders-get` | `{orderId: int}` | Get a specific order by ID — `orderId`: Order ID |
| `woocommerce orders-create` | `{orderData: {payment_method?: str, payment_method_title?: str, set_paid?: bool, billing?: dict, shipping?: dict, line_items?: list[{product_id?: int, quantity?: int}], shipping_lines?: list[dict]}}` | Create a new order — `orderData`: Order data; `orderData.payment_method`: Payment method ID; `orderData.payment_method_title`: Payment method title; `orderData.set_paid`: Define if the order is paid; `orderData.billing`: Billing address; `orderData.shipping`: Shipping address; `orderData.line_items`: Line items data; `orderData.line_items.product_id`: Product ID; `orderData.line_items.quantity`: Quantity; `orderData.shipping_lines`: Shipping lines data |
| `woocommerce orders-update` | `{orderId: int, orderData: dict}` | Update an order — `orderId`: Order ID; `orderData`: Order data to update |
| `woocommerce orders-delete` | `{orderId: int, force?: bool = false}` | Delete an order — `orderId`: Order ID; `force`: Force delete |
| `woocommerce orders-batch-update` | `{create?: list[dict], update?: list[{id?: int}], delete?: list[int]}` | Batch update orders — `create`: Orders to create; `update`: Orders to update; `update.id`: Order ID; `delete`: Order IDs to delete |
| `woocommerce orders-notes-create` | `{orderId: int, note: str, customerNote?: bool = false}` | Add a note to an order — `orderId`: Order ID; `note`: Note content; `customerNote`: Is customer note |
| `woocommerce orders-refunds-create` | `{orderId: int, amount?: str, reason?: str, refundPayment?: bool = false, lineItems?: list[{id?: int, refund_total?: number, refund_tax?: list[dict]}]}` | Create a refund for an order — `orderId`: Order ID; `amount`: Refund amount; `reason`: Refund reason; `refundPayment`: Refund payment; `lineItems`: Line items to refund; `lineItems.id`: Line item ID; `lineItems.refund_total`: Amount to refund; `lineItems.refund_tax`: Tax to refund |
| `woocommerce customers-list` | `{perPage?: int, page?: int, search?: str, email?: str, role?: "all" \| "customer" \| "administrator" \| "shop_manager", orderby?: "id" \| "include" \| "name" \| "registered_date", order?: "asc" \| "desc"}` | List customers with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — `perPage`: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; `page`: Page number for pagination (default: 1). Use with perPage to navigate through results.; `search`: Search term; `email`: Customer email; `role`: Customer role; `orderby`: Order by field; `order`: Order direction |
| `woocommerce customers-get` | `{customerId: int}` | Get a specific customer by ID — `customerId`: Customer ID |
| `woocommerce customers-create` | `{customerData: {email?: str, first_name?: str, last_name?: str, username?: str, password?: str, billing?: dict, shipping?: dict, meta_data?: list[{key?: str, value?: str}]}}` | Create a new customer — `customerData`: Customer data; `customerData.email`: Customer email; `customerData.first_name`: First name; `customerData.last_name`: Last name; `customerData.username`: Username; `customerData.password`: Password; `customerData.billing`: Billing address; `customerData.shipping`: Shipping address; `customerData.meta_data`: Meta data |
| `woocommerce customers-update` | `{customerId: int, customerData: dict}` | Update a customer — `customerId`: Customer ID; `customerData`: Customer data to update |
| `woocommerce coupons-list` | `{perPage?: int, page?: int, search?: str, code?: str}` | List coupons with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — `perPage`: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; `page`: Page number for pagination (default: 1). Use with perPage to navigate through results.; `search`: Search term; `code`: Coupon code |
| `woocommerce coupons-get` | `{couponId: int}` | Get a specific coupon by ID — `couponId`: Coupon ID |
| `woocommerce coupons-create` | `{couponData: {code: str, discount_type: "percent" \| "fixed_cart" \| "fixed_product", amount: str, date_expires?: str, individual_use?: bool, product_ids?: list[int], excluded_product_ids?: list[int], usage_limit?: int, usage_limit_per_user?: int, limit_usage_to_x_items?: int, free_shipping?: bool, exclude_sale_items?: bool, minimum_amount?: str, maximum_amount?: str}}` | Create a new coupon — `couponData`: Coupon data; `couponData.code`: Coupon code; `couponData.discount_type`: Discount type; `couponData.amount`: Discount amount; `couponData.date_expires`: Expiry date (ISO 8601); `couponData.individual_use`: Individual use only; `couponData.product_ids`: Product IDs; `couponData.excluded_product_ids`: Excluded product IDs; `couponData.usage_limit`: Usage limit per coupon; `couponData.usage_limit_per_user`: Usage limit per user; `couponData.limit_usage_to_x_items`: Limit usage to X items; `couponData.free_shipping`: Allow free shipping; `couponData.exclude_sale_items`: Exclude sale items; `couponData.minimum_amount`: Minimum spend; `couponData.maximum_amount`: Maximum spend |
| `woocommerce coupons-update` | `{couponId: int, couponData: dict}` | Update a coupon — `couponId`: Coupon ID; `couponData`: Coupon data to update |
| `woocommerce coupons-delete` | `{couponId: int, force?: bool = true}` | Delete a coupon — `couponId`: Coupon ID; `force`: Force delete |
| `woocommerce reports-sales` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str}` | Get sales report — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD) |
| `woocommerce reports-top-sellers` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str, perPage?: int, page?: int}` | Get top sellers report. Use perPage and page parameters to control pagination. — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD); `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce reports-customers` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str}` | Get customers report — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD) |
| `woocommerce reports-orders` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str}` | Get orders report — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD) |
| `woocommerce reports-products` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str, perPage?: int, page?: int}` | Get products report. Use perPage and page parameters to control pagination. — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD); `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce reports-stock` | `{perPage?: int, page?: int}` | Get stock report. Use perPage and page parameters to control pagination. — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce reports-low-stock` | `{perPage?: int, page?: int}` | Get low stock report. Use perPage and page parameters to control pagination. — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce shipping-zones-list` | `{}` | List shipping zones |
| `woocommerce shipping-zones-get` | `{zoneId: int}` | Get a shipping zone — `zoneId`: Zone ID |
| `woocommerce shipping-zones-create` | `{name: str, order?: int}` | Create a shipping zone — `name`: Zone name; `order`: Zone order |
| `woocommerce shipping-zones-update` | `{zoneId: int, name?: str, order?: int}` | Update a shipping zone — `zoneId`: Zone ID; `name`: Zone name; `order`: Zone order |
| `woocommerce shipping-zone-methods-list` | `{zoneId: int}` | List methods for a shipping zone — `zoneId`: Zone ID |
| `woocommerce shipping-zone-methods-create` | `{zoneId: int, methodId: str, enabled?: bool = true, settings?: dict}` | Add a method to a shipping zone — `zoneId`: Zone ID; `methodId`: Method ID; `enabled`: Is enabled; `settings`: Method settings |
| `woocommerce tax-rates-list` | `{taxClass?: str, perPage?: int, page?: int}` | List tax rates. Use perPage and page parameters to control pagination. — `taxClass`: Tax class; `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce tax-rates-get` | `{rateId: int}` | Get a tax rate — `rateId`: Tax rate ID |
| `woocommerce tax-rates-create` | `{country: str, state?: str, rate: str, name?: str, priority?: int = 1, compound?: bool = false, shipping?: bool = true, class?: str = "standard"}` | Create a tax rate — `country`: Country code; `state`: State code; `rate`: Tax rate; `name`: Tax name; `priority`: Priority; `compound`: Is compound; `shipping`: Apply to shipping; `class`: Tax class |
| `woocommerce tax-classes-list` | `{}` | List tax classes |
| `woocommerce system-status` | `{}` | Get system status information |
| `woocommerce system-tools-list` | `{}` | List system tools |
| `woocommerce system-tools-run` | `{toolId: "clear_transients" \| "clear_expired_transients" \| "clear_orphaned_variations" \| "add_order_indexes" \| "recount_terms" \| "reset_roles" \| "clear_sessions" \| "clear_template_cache" \| "clear_system_status_theme_info_cache"}` | Run a system tool — `toolId`: Tool ID |
| `woocommerce settings-list` | `{}` | List settings groups |
| `woocommerce settings-get` | `{groupId: "general" \| "products" \| "tax" \| "shipping" \| "checkout" \| "account" \| "email" \| "integration" \| "advanced" \| "rest-api"}` | Get settings for a group — `groupId`: Settings group ID |
| `woocommerce payment-gateways-list` | `{}` | List payment gateways |
| `woocommerce payment-gateways-get` | `{gatewayId: str}` | Get a payment gateway — `gatewayId`: Gateway ID |
| `woocommerce payment-gateways-update` | `{gatewayId: str, enabled?: bool, title?: str, description?: str, settings?: dict}` | Update a payment gateway — `gatewayId`: Gateway ID; `enabled`: Is enabled; `title`: Gateway title; `description`: Gateway description; `settings`: Gateway settings |
| `woocommerce webhooks-list` | `{perPage?: int, page?: int, status?: "active" \| "paused" \| "disabled"}` | List webhooks. Use perPage and page parameters to control pagination. — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1); `status`: Webhook status |
| `woocommerce webhooks-create` | `{name: str, topic: "coupon.created" \| "coupon.updated" \| "coupon.deleted" \| "customer.created" \| "customer.updated" \| "customer.deleted" \| "order.created" \| "order.updated" \| "order.deleted" \| "product.created" \| "product.updated" \| "product.deleted", delivery_url: str, status?: "active" \| "paused" \| "disabled" = "active", secret?: str}` | Create a webhook — `name`: Webhook name; `topic`: Webhook topic; `delivery_url`: Delivery URL; `status`: Webhook status; `secret`: Secret key |
## emails
Use `emails <command> '<JSON arguments>'`. Run `emails <command> --help` to
get more information.
| Command | Arguments | Description |
|---|---|---|
| `emails get-emails` | `{folder?: str = "INBOX", page?: int = 1, page_size?: int = 20}` | Get paginated list of emails from specified folder Args: folder: Email folder name (default: INBOX) page: Page number starting from 1 (default: 1) page_size: Number of emails per page (default: 20) |
| `emails read-email` | `{email_id: str}` | Read full content of a specific email Args: email_id: Email ID to read |
| `emails search-emails` | `{query: str, folder?: str = "INBOX", page?: int = 1, page_size?: int = 20}` | Search emails with query string (sorted by date descending) Args: query: Search query (subject, from, body content) folder: Folder to search in (default: INBOX) page: Page number starting from 1 (default: 1) page_size: Number of results per page (default: 20) |
| `emails send-email` | `{to: str, subject: str, body: str, html_body?: str = null, cc?: str = null, bcc?: str = null, attachments?: list[str] = null}` | Send an email with optional HTML body, CC, BCC, and attachments Args: to: Recipient email address(es), comma-separated subject: Email subject body: Plain text body html_body: HTML body content (optional) cc: CC recipients, comma-separated (optional) bcc: BCC recipients, comma-separated (optional) attachments: List of file paths to attach (optional) |
| `emails reply-email` | `{email_id: str, body: str, html_body?: str = null, cc?: str = null, bcc?: str = null, reply_all?: bool = false}` | Reply to an email Args: email_id: ID of email to reply to body: Reply message body (plain text) html_body: Reply message body (HTML, optional) cc: Additional CC recipients (optional) bcc: BCC recipients (optional) reply_all: Whether to reply to all recipients (default: False) |
| `emails forward-email` | `{email_id: str, to: str, body?: str = null, html_body?: str = null, cc?: str = null, bcc?: str = null}` | Forward an email to other recipients Args: email_id: ID of email to forward to: Recipients to forward to body: Additional message body (optional) html_body: Additional HTML message body (optional) cc: CC recipients (optional) bcc: BCC recipients (optional) |
| `emails delete-email` | `{email_id: str}` | Delete an email Args: email_id: Email ID to delete |
| `emails move-email` | `{email_id: str, target_folder: str}` | Move email to another folder Args: email_id: Email ID to move target_folder: Target folder name |
| `emails mark-emails` | `{email_ids: list[str], status: str}` | Mark multiple emails with status (read/unread/important/not_important) Args: email_ids: List of email IDs to mark status: Status to set (read, unread, important, not_important) |
| `emails move-emails` | `{email_ids: list[str], target_folder: str}` | Move multiple emails to another folder with improved ID synchronization Args: email_ids: List of email IDs to move target_folder: Target folder name |
| `emails delete-emails` | `{email_ids: list[str]}` | Delete multiple emails with improved ID synchronization Args: email_ids: List of email IDs to delete |
| `emails get-folders` | `{}` | Get list of available email folders |
| `emails create-folder` | `{folder_name: str}` | Create new email folder Args: folder_name: Name of folder to create |
| `emails delete-folder` | `{folder_name: str}` | Delete email folder Args: folder_name: Name of folder to delete |
| `emails get-mailbox-stats` | `{folder_name?: str = null}` | Get mailbox statistics Args: folder_name: Specific folder name (optional, defaults to all folders) |
| `emails get-unread-count` | `{folder_name?: str = null}` | Get unread message count Args: folder_name: Specific folder name (optional, defaults to all folders) |
| `emails check-connection` | `{}` | Check email server connection status |
| `emails get-email-headers` | `{email_id: str}` | Get complete email headers for technical analysis Args: email_id: Email ID to get headers for |
| `emails save-draft` | `{subject: str, body: str, html_body?: str = null, to?: str = null, cc?: str = null, bcc?: str = null}` | Save email draft Args: subject: Email subject body: Plain text body html_body: HTML body content (optional) to: Recipient email address(es) (optional) cc: CC recipients (optional) bcc: BCC recipients (optional) |
| `emails get-drafts` | `{page?: int = 1, page_size?: int = 20}` | Get list of saved drafts Args: page: Page number starting from 1 (default: 1) page_size: Number of drafts per page (default: 20) |
| `emails update-draft` | `{draft_id: str, subject?: str = null, body?: str = null, html_body?: str = null, to?: str = null, cc?: str = null, bcc?: str = null}` | Update existing draft Args: draft_id: Draft ID to update subject: Email subject (optional) body: Plain text body (optional) html_body: HTML body content (optional) to: Recipient email address(es) (optional) cc: CC recipients (optional) bcc: BCC recipients (optional) |
| `emails delete-draft` | `{draft_id: str}` | Delete draft Args: draft_id: Draft ID to delete |
| `emails export-emails` | `{folder?: str = null, export_path?: str = "emails_export.json", max_emails?: int = null, export_all_folders?: bool = false}` | Export emails to file for backup Args: folder: Specific folder to export (mutually exclusive with export_all_folders) export_path: Path where to save the export file max_emails: Maximum number of emails to export (optional, exports all if not specified) export_all_folders: Export from all folders instead of just one (default: False) |
| `emails import-emails` | `{import_path: str, target_folder?: str = null, preserve_folders?: bool = true}` | Import emails from backup file to IMAP server Args: import_path: Path to import file (.json or .eml) or a directory target_folder: Target folder for imported emails (if preserve_folders=False) preserve_folders: Whether to preserve original folder structure (default: True) |
| `emails download-attachment` | `{email_id: str, attachment_filename: str}` | Download email attachment to configured download path Args: email_id: Email ID containing the attachment attachment_filename: Name of attachment to download |
## google-cloud
Use `google-cloud <command> '<JSON arguments>'`. Run
`google-cloud <command> --help` to get more information.
| Command | Arguments | Description |
|---|---|---|
| `google-cloud bigquery-run-query` | `{query: str, dry_run?: bool = false, max_results?: int = 1000}` | Execute a BigQuery SQL query Args: query: SQL query to execute dry_run: If True, only validate query without running it max_results: Maximum number of results to return (default: 1000) Returns: Query results or error message |
| `google-cloud bigquery-list-datasets` | `{}` | List all BigQuery datasets in the project Returns: List of datasets or error message |
| `google-cloud bigquery-create-dataset` | `{dataset_id: str, description?: str = "", location?: str = "US"}` | Create a new BigQuery dataset Args: dataset_id: ID for the new dataset description: Optional description for the dataset location: Dataset location (default: US) Returns: Success message or error |
| `google-cloud bigquery-get-dataset-info` | `{dataset_id: str}` | Get detailed information about a BigQuery dataset Args: dataset_id: ID of the dataset Returns: Dataset information or error message |
| `google-cloud bigquery-load-csv-data` | `{dataset_id: str, table_id: str, csv_file_path: str, skip_header?: bool = true, write_mode?: str = "WRITE_TRUNCATE"}` | Load data from CSV file to BigQuery table Args: dataset_id: Dataset ID table_id: Table ID csv_file_path: Path to CSV file skip_header: Whether to skip the first row (header) write_mode: Write mode (WRITE_TRUNCATE, WRITE_APPEND, WRITE_EMPTY) Returns: Success message or error |
| `google-cloud bigquery-export-table` | `{dataset_id: str, table_id: str, destination_bucket: str, destination_path: str, file_format?: str = "CSV"}` | Export BigQuery table to Cloud Storage Args: dataset_id: Dataset ID table_id: Table ID destination_bucket: Destination bucket name destination_path: Destination path in bucket file_format: Export format (CSV, JSON, AVRO) Returns: Success message or error |
| `google-cloud bigquery-list-jobs` | `{max_results?: int = 50, state_filter?: str = ""}` | List BigQuery jobs Args: max_results: Maximum number of jobs to return state_filter: Filter by job state (RUNNING, DONE, PENDING) Returns: List of jobs or error message |
| `google-cloud bigquery-cancel-job` | `{job_id: str}` | Cancel a BigQuery job Args: job_id: ID of the job to cancel Returns: Success message or error |
| `google-cloud storage-list-buckets` | `{}` | List all Cloud Storage buckets Returns: List of buckets or error message |
| `google-cloud storage-create-bucket` | `{bucket_name: str, location?: str = "US"}` | Create a new Cloud Storage bucket Args: bucket_name: Name for the new bucket location: Location for the bucket (default: US) Returns: Success message or error |
| `google-cloud storage-list-objects` | `{bucket_name: str, prefix?: str = ""}` | List objects in a Cloud Storage bucket Args: bucket_name: Name of the bucket prefix: Optional prefix to filter objects Returns: List of objects or error message |
| `google-cloud storage-upload-file` | `{bucket_name: str, source_file_path: str, destination_blob_name: str}` | Upload a file to Cloud Storage bucket Args: bucket_name: Name of the bucket source_file_path: Local path to the file to upload destination_blob_name: Name for the blob in the bucket Returns: Success message or error |
| `google-cloud storage-download-file` | `{bucket_name: str, source_blob_name: str, destination_file_path: str}` | Download a file from Cloud Storage bucket Args: bucket_name: Name of the bucket source_blob_name: Name of the blob in the bucket destination_file_path: Local path where to save the file Returns: Success message or error |
| `google-cloud storage-delete-object` | `{bucket_name: str, blob_name: str}` | Delete an object from Cloud Storage bucket Args: bucket_name: Name of the bucket blob_name: Name of the blob to delete Returns: Success message or error |
| `google-cloud storage-get-bucket-info` | `{bucket_name: str}` | Get detailed information about a Cloud Storage bucket Args: bucket_name: Name of the bucket Returns: Bucket information or error message |
| `google-cloud storage-generate-signed-url` | `{bucket_name: str, blob_name: str, expiration_minutes?: int = 60, method?: str = "GET"}` | Generate a signed URL for temporary access to a Cloud Storage object Args: bucket_name: Name of the bucket blob_name: Name of the blob expiration_minutes: URL expiration time in minutes (default: 60) method: HTTP method (GET, PUT, POST, DELETE) Returns: Signed URL or error message |
| `google-cloud storage-copy-object` | `{source_bucket: str, source_blob: str, dest_bucket: str, dest_blob: str}` | Copy an object between Cloud Storage buckets Args: source_bucket: Source bucket name source_blob: Source blob name dest_bucket: Destination bucket name dest_blob: Destination blob name Returns: Success message or error |
| `google-cloud storage-move-object` | `{source_bucket: str, source_blob: str, dest_bucket: str, dest_blob: str}` | Move an object between Cloud Storage buckets Args: source_bucket: Source bucket name source_blob: Source blob name dest_bucket: Destination bucket name dest_blob: Destination blob name Returns: Success message or error |
| `google-cloud storage-enable-versioning` | `{bucket_name: str, enabled?: bool = true}` | Enable or disable versioning for a Cloud Storage bucket Args: bucket_name: Name of the bucket enabled: Whether to enable (True) or disable (False) versioning Returns: Success message or error |
| `google-cloud storage-get-bucket-size` | `{bucket_name: str}` | Get size statistics for a Cloud Storage bucket Args: bucket_name: Name of the bucket Returns: Bucket size information or error message |
| `google-cloud storage-set-bucket-lifecycle` | `{bucket_name: str, age_days?: int = 30, action?: str = "Delete"}` | Set lifecycle rules for a Cloud Storage bucket Args: bucket_name: Name of the bucket age_days: Age in days after which to apply the action action: Action to take (Delete, SetStorageClass) Returns: Success message or error |
| `google-cloud logging-write-log` | `{log_name: str, message: str, severity?: str = "INFO"}` | Write a log entry to Cloud Logging Args: log_name: Name of the log message: Log message severity: Log severity (DEBUG, INFO, WARNING, ERROR, CRITICAL) Returns: Success message or error |
| `google-cloud logging-read-logs` | `{log_filter?: str = "", max_entries?: int = 50}` | Read recent log entries from Cloud Logging Args: log_filter: Optional filter for log entries max_entries: Maximum number of entries to return (default: 50) Returns: Log entries or error message |
| `google-cloud logging-list-logs` | `{}` | List all log names in the project Returns: List of log names or error message |
| `google-cloud logging-delete-log` | `{log_name: str}` | Delete a log Args: log_name: Name of the log to delete Returns: Success message or error |
| `google-cloud logging-create-log-sink` | `{sink_name: str, destination: str, log_filter?: str = ""}` | Create a log sink to export logs to another service Args: sink_name: Name for the sink destination: Destination (e.g., bigquery://project.dataset, storage://bucket-name) log_filter: Optional filter for which logs to export Returns: Success message or error |
| `google-cloud logging-list-log-sinks` | `{}` | List all log sinks in the project Returns: List of log sinks or error message |
| `google-cloud logging-delete-log-sink` | `{sink_name: str}` | Delete a log sink Args: sink_name: Name of the sink to delete Returns: Success message or error |
| `google-cloud logging-export-logs-to-bigquery` | `{dataset_id: str, table_id: str, log_filter?: str = "", days_back?: int = 1}` | Export logs to BigQuery Args: dataset_id: BigQuery dataset ID table_id: BigQuery table ID log_filter: Filter for which logs to export days_back: Number of days back to export (default: 1) Returns: Success message or error |
| `google-cloud logging-create-log-bucket` | `{bucket_id: str, location?: str = "global", retention_days?: int = 30}` | Create a log bucket for storing logs Args: bucket_id: ID for the log bucket location: Location for the bucket (default: global) retention_days: Log retention period in days (default: 30) Returns: Success message or error |
| `google-cloud compute-list-instances` | `{zone?: str = ""}` | List Compute Engine instances Args: zone: Optional zone filter, if empty lists from all zones Returns: List of instances or error message |
| `google-cloud compute-create-instance` | `{instance_name: str, zone: str, machine_type?: str = "e2-micro"}` | Create a new Compute Engine instance Args: instance_name: Name for the new instance zone: Zone where to create the instance machine_type: Machine type (default: e2-micro) Returns: Success message or error |
| `google-cloud compute-delete-instance` | `{instance_name: str, zone: str}` | Delete a Compute Engine instance Args: instance_name: Name of the instance to delete zone: Zone where the instance is located Returns: Success message or error |
| `google-cloud compute-start-instance` | `{instance_name: str, zone: str}` | Start a Compute Engine instance Args: instance_name: Name of the instance to start zone: Zone where the instance is located Returns: Success message or error |
| `google-cloud compute-stop-instance` | `{instance_name: str, zone: str}` | Stop a Compute Engine instance Args: instance_name: Name of the instance to stop zone: Zone where the instance is located Returns: Success message or error |
| `google-cloud compute-restart-instance` | `{instance_name: str, zone: str}` | Restart a Compute Engine instance Args: instance_name: Name of the instance to restart zone: Zone where the instance is located Returns: Success message or error |
| `google-cloud compute-get-instance` | `{instance_name: str, zone: str}` | Get detailed information about a Compute Engine instance Args: instance_name: Name of the instance zone: Zone where the instance is located Returns: Instance information or error message |
| `google-cloud compute-list-zones` | `{}` | List all available Compute Engine zones Returns: List of zones or error message |
| `google-cloud compute-wait-for-operation` | `{operation_name: str, zone: str, timeout_minutes?: int = 5}` | Wait for a Compute Engine operation to complete Args: operation_name: Name of the operation to wait for zone: Zone where the operation is running timeout_minutes: Maximum time to wait in minutes (default: 5) Returns: Operation status or timeout message |
## git
Use `git --help` for Git operations on workspace repositories.
## python3
Execute Python code directly under the agent workspace and return stdout
and stderr. Code can be pasted into a `.py` file and run with `python3`.
Python cannot launch subprocesses or make direct network requests. Run the
documented service commands directly in the shell. Use Python for local
file processing and generating JSON arguments.
| name | workspace-commands |
|---|
| description | The shell commands, task tools, and python3 interpreter available in this workspace. |
|---|
Available commands
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq unzip curl
with pipes, > redirection, $(...) substitution and $'...'.
The task CLIs below are registered with this shell rather than installed as files; do not inspect them with which, file or /usr/bin.
woocommerce
Use woocommerce <command> '<JSON arguments>'. Run woocommerce <command> --help to get more information.
| Command | Arguments | Description |
|---|
woocommerce products-list | `{perPage?: int, page?: int, search?: str, status?: "publish" \ | "draft" \ | "private" \ | "pending", category?: str, tag?: str, sku?: str, featured?: bool, onSale?: bool, minPrice?: str, maxPrice?: str, stockStatus?: "instock" \ | "outofstock" \ | "onbackorder", orderby?: "date" \ | "id" \ | "include" \ | "title" \ | "slug" \ | "price" \ | "popularity" \ | "rating", order?: "asc" \ | "desc"}` | List products with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — perPage: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; page: Page number for pagination (default: 1). Use with perPage to navigate through results.; search: Search term; status: Product status; category: Category ID; tag: Tag ID; sku: Product SKU; featured: Featured products only; onSale: On sale products only; minPrice: Minimum price; maxPrice: Maximum price; stockStatus: Stock status; orderby: Order by field; order: Order direction |
woocommerce products-get | {productId: int} | Get a specific product by ID — productId: Product ID |
woocommerce products-create | `{productData: {name?: str, type?: "simple" \ | "grouped" \ | "external" \ | "variable", status?: "publish" \ | "draft" \ | "private" \ | "pending", featured?: bool, catalog_visibility?: "visible" \ | "catalog" \ | "search" \ | "hidden", description?: str, short_description?: str, sku?: str, regular_price?: str, sale_price?: str, manage_stock?: bool, stock_quantity?: int, categories?: list[{id?: int}], images?: list[{src?: str, alt?: str}]}}` | Create a new product — productData: Product data; productData.name: Product name; productData.type: Product type; productData.status: Product status; productData.featured: Featured product; productData.catalog_visibility: Catalog visibility; productData.description: Product description; productData.short_description: Product short description; productData.sku: Product SKU; productData.regular_price: Regular price; productData.sale_price: Sale price; productData.manage_stock: Manage stock; productData.stock_quantity: Stock quantity; productData.categories: Product categories; productData.categories.id: Category ID; productData.images: Product images; productData.images.src: Image URL; productData.images.alt: Image alt text |
woocommerce products-update | {productId: int, productData: dict} | Update a product — productId: Product ID; productData: Product data to update |
woocommerce products-delete | {productId: int, force?: bool = false} | Delete a product — productId: Product ID; force: Force delete |
woocommerce products-batch-update | {create?: list[dict], update?: list[{id?: int}], delete?: list[int]} | Batch update products — create: Products to create; update: Products to update; update.id: Product ID; delete: Product IDs to delete |
woocommerce products-variations-list | {productId: int, perPage?: int, page?: int} | List product variations. Use perPage and page parameters for pagination (default: 10 items per page). — productId: Product ID; perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) |
woocommerce products-categories-list | {perPage?: int, page?: int, search?: str, parent?: int, hideEmpty?: bool} | List product categories. Use perPage and page parameters for pagination (default: 10 items per page). — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1); search: Search term; parent: Parent category ID; hideEmpty: Hide empty categories |
woocommerce products-categories-create | `{categoryData: {name: str, slug?: str, parent?: int, description?: str, display?: "default" \ | "products" \ | "subcategories" \ | "both", image?: {src?: str, alt?: str}, menuOrder?: int}}` | Create a new product category — categoryData.name: Category name; categoryData.slug: Category slug; categoryData.parent: Parent category ID; categoryData.description: Category description; categoryData.display: Display type; categoryData.image.src: Image URL; categoryData.image.alt: Image alt text; categoryData.menuOrder: Menu order |
woocommerce products-tags-list | {perPage?: int, page?: int, search?: str, hideEmpty?: bool} | List product tags. Use perPage and page parameters for pagination (default: 10 items per page). — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1); search: Search term; hideEmpty: Hide empty tags |
woocommerce products-reviews-list | `{productId?: int, perPage?: int, page?: int, status?: "all" \ | "hold" \ | "approved" \ | "spam" \ | "trash"}` | List product reviews. Use perPage and page parameters for pagination (default: 10 items per page). — productId: Product ID (optional); perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1); status: Review status |
woocommerce orders-list | `{perPage?: int, page?: int, status?: list["pending" \ | "processing" \ | "on-hold" \ | "completed" \ | "cancelled" \ | "refunded" \ | "failed"], customer?: int, product?: int, dateAfter?: str, dateBefore?: str, orderby?: "date" \ | "id" \ | "include" \ | "title" \ | "slug", order?: "asc" \ | "desc"}` | List orders with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — perPage: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; page: Page number for pagination (default: 1). Use with perPage to navigate through results.; status: Order statuses; customer: Customer ID; product: Product ID; dateAfter: Orders after this date (ISO 8601); dateBefore: Orders before this date (ISO 8601); orderby: Order by field; order: Order direction |
woocommerce orders-get | {orderId: int} | Get a specific order by ID — orderId: Order ID |
woocommerce orders-create | {orderData: {payment_method?: str, payment_method_title?: str, set_paid?: bool, billing?: dict, shipping?: dict, line_items?: list[{product_id?: int, quantity?: int}], shipping_lines?: list[dict]}} | Create a new order — orderData: Order data; orderData.payment_method: Payment method ID; orderData.payment_method_title: Payment method title; orderData.set_paid: Define if the order is paid; orderData.billing: Billing address; orderData.shipping: Shipping address; orderData.line_items: Line items data; orderData.line_items.product_id: Product ID; orderData.line_items.quantity: Quantity; orderData.shipping_lines: Shipping lines data |
woocommerce orders-update | {orderId: int, orderData: dict} | Update an order — orderId: Order ID; orderData: Order data to update |
woocommerce orders-delete | {orderId: int, force?: bool = false} | Delete an order — orderId: Order ID; force: Force delete |
woocommerce orders-batch-update | {create?: list[dict], update?: list[{id?: int}], delete?: list[int]} | Batch update orders — create: Orders to create; update: Orders to update; update.id: Order ID; delete: Order IDs to delete |
woocommerce orders-notes-create | {orderId: int, note: str, customerNote?: bool = false} | Add a note to an order — orderId: Order ID; note: Note content; customerNote: Is customer note |
woocommerce orders-refunds-create | {orderId: int, amount?: str, reason?: str, refundPayment?: bool = false, lineItems?: list[{id?: int, refund_total?: number, refund_tax?: list[dict]}]} | Create a refund for an order — orderId: Order ID; amount: Refund amount; reason: Refund reason; refundPayment: Refund payment; lineItems: Line items to refund; lineItems.id: Line item ID; lineItems.refund_total: Amount to refund; lineItems.refund_tax: Tax to refund |
woocommerce customers-list | `{perPage?: int, page?: int, search?: str, email?: str, role?: "all" \ | "customer" \ | "administrator" \ | "shop_manager", orderby?: "id" \ | "include" \ | "name" \ | "registered_date", order?: "asc" \ | "desc"}` | List customers with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — perPage: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; page: Page number for pagination (default: 1). Use with perPage to navigate through results.; search: Search term; email: Customer email; role: Customer role; orderby: Order by field; order: Order direction |
woocommerce customers-get | {customerId: int} | Get a specific customer by ID — customerId: Customer ID |
woocommerce customers-create | {customerData: {email?: str, first_name?: str, last_name?: str, username?: str, password?: str, billing?: dict, shipping?: dict, meta_data?: list[{key?: str, value?: str}]}} | Create a new customer — customerData: Customer data; customerData.email: Customer email; customerData.first_name: First name; customerData.last_name: Last name; customerData.username: Username; customerData.password: Password; customerData.billing: Billing address; customerData.shipping: Shipping address; customerData.meta_data: Meta data |
woocommerce customers-update | {customerId: int, customerData: dict} | Update a customer — customerId: Customer ID; customerData: Customer data to update |
woocommerce coupons-list | {perPage?: int, page?: int, search?: str, code?: str} | List coupons with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — perPage: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; page: Page number for pagination (default: 1). Use with perPage to navigate through results.; search: Search term; code: Coupon code |
woocommerce coupons-get | {couponId: int} | Get a specific coupon by ID — couponId: Coupon ID |
woocommerce coupons-create | `{couponData: {code: str, discount_type: "percent" \ | "fixed_cart" \ | "fixed_product", amount: str, date_expires?: str, individual_use?: bool, product_ids?: list[int], excluded_product_ids?: list[int], usage_limit?: int, usage_limit_per_user?: int, limit_usage_to_x_items?: int, free_shipping?: bool, exclude_sale_items?: bool, minimum_amount?: str, maximum_amount?: str}}` | Create a new coupon — couponData: Coupon data; couponData.code: Coupon code; couponData.discount_type: Discount type; couponData.amount: Discount amount; couponData.date_expires: Expiry date (ISO 8601); couponData.individual_use: Individual use only; couponData.product_ids: Product IDs; couponData.excluded_product_ids: Excluded product IDs; couponData.usage_limit: Usage limit per coupon; couponData.usage_limit_per_user: Usage limit per user; couponData.limit_usage_to_x_items: Limit usage to X items; couponData.free_shipping: Allow free shipping; couponData.exclude_sale_items: Exclude sale items; couponData.minimum_amount: Minimum spend; couponData.maximum_amount: Maximum spend |
woocommerce coupons-update | {couponId: int, couponData: dict} | Update a coupon — couponId: Coupon ID; couponData: Coupon data to update |
woocommerce coupons-delete | {couponId: int, force?: bool = true} | Delete a coupon — couponId: Coupon ID; force: Force delete |
woocommerce reports-sales | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str}` | Get sales report — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD) |
woocommerce reports-top-sellers | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str, perPage?: int, page?: int}` | Get top sellers report. Use perPage and page parameters to control pagination. — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD); perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) |
woocommerce reports-customers | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str}` | Get customers report — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD) |
woocommerce reports-orders | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str}` | Get orders report — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD) |
woocommerce reports-products | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str, perPage?: int, page?: int}` | Get products report. Use perPage and page parameters to control pagination. — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD); perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) |
woocommerce reports-stock | {perPage?: int, page?: int} | Get stock report. Use perPage and page parameters to control pagination. — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) |
woocommerce reports-low-stock | {perPage?: int, page?: int} | Get low stock report. Use perPage and page parameters to control pagination. — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) |
woocommerce shipping-zones-list | {} | List shipping zones |
woocommerce shipping-zones-get | {zoneId: int} | Get a shipping zone — zoneId: Zone ID |
woocommerce shipping-zones-create | {name: str, order?: int} | Create a shipping zone — name: Zone name; order: Zone order |
woocommerce shipping-zones-update | {zoneId: int, name?: str, order?: int} | Update a shipping zone — zoneId: Zone ID; name: Zone name; order: Zone order |
woocommerce shipping-zone-methods-list | {zoneId: int} | List methods for a shipping zone — zoneId: Zone ID |
woocommerce shipping-zone-methods-create | {zoneId: int, methodId: str, enabled?: bool = true, settings?: dict} | Add a method to a shipping zone — zoneId: Zone ID; methodId: Method ID; enabled: Is enabled; settings: Method settings |
woocommerce tax-rates-list | {taxClass?: str, perPage?: int, page?: int} | List tax rates. Use perPage and page parameters to control pagination. — taxClass: Tax class; perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) |
woocommerce tax-rates-get | {rateId: int} | Get a tax rate — rateId: Tax rate ID |
woocommerce tax-rates-create | {country: str, state?: str, rate: str, name?: str, priority?: int = 1, compound?: bool = false, shipping?: bool = true, class?: str = "standard"} | Create a tax rate — country: Country code; state: State code; rate: Tax rate; name: Tax name; priority: Priority; compound: Is compound; shipping: Apply to shipping; class: Tax class |
woocommerce tax-classes-list | {} | List tax classes |
woocommerce system-status | {} | Get system status information |
woocommerce system-tools-list | {} | List system tools |
woocommerce system-tools-run | `{toolId: "clear_transients" \ | "clear_expired_transients" \ | "clear_orphaned_variations" \ | "add_order_indexes" \ | "recount_terms" \ | "reset_roles" \ | "clear_sessions" \ | "clear_template_cache" \ | "clear_system_status_theme_info_cache"}` | Run a system tool — toolId: Tool ID |
woocommerce settings-list | {} | List settings groups |
woocommerce settings-get | `{groupId: "general" \ | "products" \ | "tax" \ | "shipping" \ | "checkout" \ | "account" \ | "email" \ | "integration" \ | "advanced" \ | "rest-api"}` | Get settings for a group — groupId: Settings group ID |
woocommerce payment-gateways-list | {} | List payment gateways |
woocommerce payment-gateways-get | {gatewayId: str} | Get a payment gateway — gatewayId: Gateway ID |
woocommerce payment-gateways-update | {gatewayId: str, enabled?: bool, title?: str, description?: str, settings?: dict} | Update a payment gateway — gatewayId: Gateway ID; enabled: Is enabled; title: Gateway title; description: Gateway description; settings: Gateway settings |
woocommerce webhooks-list | `{perPage?: int, page?: int, status?: "active" \ | "paused" \ | "disabled"}` | List webhooks. Use perPage and page parameters to control pagination. — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1); status: Webhook status |
woocommerce webhooks-create | `{name: str, topic: "coupon.created" \ | "coupon.updated" \ | "coupon.deleted" \ | "customer.created" \ | "customer.updated" \ | "customer.deleted" \ | "order.created" \ | "order.updated" \ | "order.deleted" \ | "product.created" \ | "product.updated" \ | "product.deleted", delivery_url: str, status?: "active" \ | "paused" \ | "disabled" = "active", secret?: str}` | Create a webhook — name: Webhook name; topic: Webhook topic; delivery_url: Delivery URL; status: Webhook status; secret: Secret key |
emails
Use emails <command> '<JSON arguments>'. Run emails <command> --help to get more information.
| Command | Arguments | Description |
|---|
emails get-emails | {folder?: str = "INBOX", page?: int = 1, page_size?: int = 20} | Get paginated list of emails from specified folder Args: folder: Email folder name (default: INBOX) page: Page number starting from 1 (default: 1) page_size: Number of emails per page (default: 20) |
emails read-email | {email_id: str} | Read full content of a specific email Args: email_id: Email ID to read |
emails search-emails | {query: str, folder?: str = "INBOX", page?: int = 1, page_size?: int = 20} | Search emails with query string (sorted by date descending) Args: query: Search query (subject, from, body content) folder: Folder to search in (default: INBOX) page: Page number starting from 1 (default: 1) page_size: Number of results per page (default: 20) |
emails send-email | {to: str, subject: str, body: str, html_body?: str = null, cc?: str = null, bcc?: str = null, attachments?: list[str] = null} | Send an email with optional HTML body, CC, BCC, and attachments Args: to: Recipient email address(es), comma-separated subject: Email subject body: Plain text body html_body: HTML body content (optional) cc: CC recipients, comma-separated (optional) bcc: BCC recipients, comma-separated (optional) attachments: List of file paths to attach (optional) |
emails reply-email | {email_id: str, body: str, html_body?: str = null, cc?: str = null, bcc?: str = null, reply_all?: bool = false} | Reply to an email Args: email_id: ID of email to reply to body: Reply message body (plain text) html_body: Reply message body (HTML, optional) cc: Additional CC recipients (optional) bcc: BCC recipients (optional) reply_all: Whether to reply to all recipients (default: False) |
emails forward-email | {email_id: str, to: str, body?: str = null, html_body?: str = null, cc?: str = null, bcc?: str = null} | Forward an email to other recipients Args: email_id: ID of email to forward to: Recipients to forward to body: Additional message body (optional) html_body: Additional HTML message body (optional) cc: CC recipients (optional) bcc: BCC recipients (optional) |
emails delete-email | {email_id: str} | Delete an email Args: email_id: Email ID to delete |
emails move-email | {email_id: str, target_folder: str} | Move email to another folder Args: email_id: Email ID to move target_folder: Target folder name |
emails mark-emails | {email_ids: list[str], status: str} | Mark multiple emails with status (read/unread/important/not_important) Args: email_ids: List of email IDs to mark status: Status to set (read, unread, important, not_important) |
emails move-emails | {email_ids: list[str], target_folder: str} | Move multiple emails to another folder with improved ID synchronization Args: email_ids: List of email IDs to move target_folder: Target folder name |
emails delete-emails | {email_ids: list[str]} | Delete multiple emails with improved ID synchronization Args: email_ids: List of email IDs to delete |
emails get-folders | {} | Get list of available email folders |
emails create-folder | {folder_name: str} | Create new email folder Args: folder_name: Name of folder to create |
emails delete-folder | {folder_name: str} | Delete email folder Args: folder_name: Name of folder to delete |
emails get-mailbox-stats | {folder_name?: str = null} | Get mailbox statistics Args: folder_name: Specific folder name (optional, defaults to all folders) |
emails get-unread-count | {folder_name?: str = null} | Get unread message count Args: folder_name: Specific folder name (optional, defaults to all folders) |
emails check-connection | {} | Check email server connection status |
emails get-email-headers | {email_id: str} | Get complete email headers for technical analysis Args: email_id: Email ID to get headers for |
emails save-draft | {subject: str, body: str, html_body?: str = null, to?: str = null, cc?: str = null, bcc?: str = null} | Save email draft Args: subject: Email subject body: Plain text body html_body: HTML body content (optional) to: Recipient email address(es) (optional) cc: CC recipients (optional) bcc: BCC recipients (optional) |
emails get-drafts | {page?: int = 1, page_size?: int = 20} | Get list of saved drafts Args: page: Page number starting from 1 (default: 1) page_size: Number of drafts per page (default: 20) |
emails update-draft | {draft_id: str, subject?: str = null, body?: str = null, html_body?: str = null, to?: str = null, cc?: str = null, bcc?: str = null} | Update existing draft Args: draft_id: Draft ID to update subject: Email subject (optional) body: Plain text body (optional) html_body: HTML body content (optional) to: Recipient email address(es) (optional) cc: CC recipients (optional) bcc: BCC recipients (optional) |
emails delete-draft | {draft_id: str} | Delete draft Args: draft_id: Draft ID to delete |
emails export-emails | {folder?: str = null, export_path?: str = "emails_export.json", max_emails?: int = null, export_all_folders?: bool = false} | Export emails to file for backup Args: folder: Specific folder to export (mutually exclusive with export_all_folders) export_path: Path where to save the export file max_emails: Maximum number of emails to export (optional, exports all if not specified) export_all_folders: Export from all folders instead of just one (default: False) |
emails import-emails | {import_path: str, target_folder?: str = null, preserve_folders?: bool = true} | Import emails from backup file to IMAP server Args: import_path: Path to import file (.json or .eml) or a directory target_folder: Target folder for imported emails (if preserve_folders=False) preserve_folders: Whether to preserve original folder structure (default: True) |
emails download-attachment | {email_id: str, attachment_filename: str} | Download email attachment to configured download path Args: email_id: Email ID containing the attachment attachment_filename: Name of attachment to download |
google-cloud
Use google-cloud <command> '<JSON arguments>'. Run google-cloud <command> --help to get more information.
| Command | Arguments | Description |
|---|
google-cloud bigquery-run-query | {query: str, dry_run?: bool = false, max_results?: int = 1000} | Execute a BigQuery SQL query Args: query: SQL query to execute dry_run: If True, only validate query without running it max_results: Maximum number of results to return (default: 1000) Returns: Query results or error message |
google-cloud bigquery-list-datasets | {} | List all BigQuery datasets in the project Returns: List of datasets or error message |
google-cloud bigquery-create-dataset | {dataset_id: str, description?: str = "", location?: str = "US"} | Create a new BigQuery dataset Args: dataset_id: ID for the new dataset description: Optional description for the dataset location: Dataset location (default: US) Returns: Success message or error |
google-cloud bigquery-get-dataset-info | {dataset_id: str} | Get detailed information about a BigQuery dataset Args: dataset_id: ID of the dataset Returns: Dataset information or error message |
google-cloud bigquery-load-csv-data | {dataset_id: str, table_id: str, csv_file_path: str, skip_header?: bool = true, write_mode?: str = "WRITE_TRUNCATE"} | Load data from CSV file to BigQuery table Args: dataset_id: Dataset ID table_id: Table ID csv_file_path: Path to CSV file skip_header: Whether to skip the first row (header) write_mode: Write mode (WRITE_TRUNCATE, WRITE_APPEND, WRITE_EMPTY) Returns: Success message or error |
google-cloud bigquery-export-table | {dataset_id: str, table_id: str, destination_bucket: str, destination_path: str, file_format?: str = "CSV"} | Export BigQuery table to Cloud Storage Args: dataset_id: Dataset ID table_id: Table ID destination_bucket: Destination bucket name destination_path: Destination path in bucket file_format: Export format (CSV, JSON, AVRO) Returns: Success message or error |
google-cloud bigquery-list-jobs | {max_results?: int = 50, state_filter?: str = ""} | List BigQuery jobs Args: max_results: Maximum number of jobs to return state_filter: Filter by job state (RUNNING, DONE, PENDING) Returns: List of jobs or error message |
google-cloud bigquery-cancel-job | {job_id: str} | Cancel a BigQuery job Args: job_id: ID of the job to cancel Returns: Success message or error |
google-cloud storage-list-buckets | {} | List all Cloud Storage buckets Returns: List of buckets or error message |
google-cloud storage-create-bucket | {bucket_name: str, location?: str = "US"} | Create a new Cloud Storage bucket Args: bucket_name: Name for the new bucket location: Location for the bucket (default: US) Returns: Success message or error |
google-cloud storage-list-objects | {bucket_name: str, prefix?: str = ""} | List objects in a Cloud Storage bucket Args: bucket_name: Name of the bucket prefix: Optional prefix to filter objects Returns: List of objects or error message |
google-cloud storage-upload-file | {bucket_name: str, source_file_path: str, destination_blob_name: str} | Upload a file to Cloud Storage bucket Args: bucket_name: Name of the bucket source_file_path: Local path to the file to upload destination_blob_name: Name for the blob in the bucket Returns: Success message or error |
google-cloud storage-download-file | {bucket_name: str, source_blob_name: str, destination_file_path: str} | Download a file from Cloud Storage bucket Args: bucket_name: Name of the bucket source_blob_name: Name of the blob in the bucket destination_file_path: Local path where to save the file Returns: Success message or error |
google-cloud storage-delete-object | {bucket_name: str, blob_name: str} | Delete an object from Cloud Storage bucket Args: bucket_name: Name of the bucket blob_name: Name of the blob to delete Returns: Success message or error |
google-cloud storage-get-bucket-info | {bucket_name: str} | Get detailed information about a Cloud Storage bucket Args: bucket_name: Name of the bucket Returns: Bucket information or error message |
google-cloud storage-generate-signed-url | {bucket_name: str, blob_name: str, expiration_minutes?: int = 60, method?: str = "GET"} | Generate a signed URL for temporary access to a Cloud Storage object Args: bucket_name: Name of the bucket blob_name: Name of the blob expiration_minutes: URL expiration time in minutes (default: 60) method: HTTP method (GET, PUT, POST, DELETE) Returns: Signed URL or error message |
google-cloud storage-copy-object | {source_bucket: str, source_blob: str, dest_bucket: str, dest_blob: str} | Copy an object between Cloud Storage buckets Args: source_bucket: Source bucket name source_blob: Source blob name dest_bucket: Destination bucket name dest_blob: Destination blob name Returns: Success message or error |
google-cloud storage-move-object | {source_bucket: str, source_blob: str, dest_bucket: str, dest_blob: str} | Move an object between Cloud Storage buckets Args: source_bucket: Source bucket name source_blob: Source blob name dest_bucket: Destination bucket name dest_blob: Destination blob name Returns: Success message or error |
google-cloud storage-enable-versioning | {bucket_name: str, enabled?: bool = true} | Enable or disable versioning for a Cloud Storage bucket Args: bucket_name: Name of the bucket enabled: Whether to enable (True) or disable (False) versioning Returns: Success message or error |
google-cloud storage-get-bucket-size | {bucket_name: str} | Get size statistics for a Cloud Storage bucket Args: bucket_name: Name of the bucket Returns: Bucket size information or error message |
google-cloud storage-set-bucket-lifecycle | {bucket_name: str, age_days?: int = 30, action?: str = "Delete"} | Set lifecycle rules for a Cloud Storage bucket Args: bucket_name: Name of the bucket age_days: Age in days after which to apply the action action: Action to take (Delete, SetStorageClass) Returns: Success message or error |
google-cloud logging-write-log | {log_name: str, message: str, severity?: str = "INFO"} | Write a log entry to Cloud Logging Args: log_name: Name of the log message: Log message severity: Log severity (DEBUG, INFO, WARNING, ERROR, CRITICAL) Returns: Success message or error |
google-cloud logging-read-logs | {log_filter?: str = "", max_entries?: int = 50} | Read recent log entries from Cloud Logging Args: log_filter: Optional filter for log entries max_entries: Maximum number of entries to return (default: 50) Returns: Log entries or error message |
google-cloud logging-list-logs | {} | List all log names in the project Returns: List of log names or error message |
google-cloud logging-delete-log | {log_name: str} | Delete a log Args: log_name: Name of the log to delete Returns: Success message or error |
google-cloud logging-create-log-sink | {sink_name: str, destination: str, log_filter?: str = ""} | Create a log sink to export logs to another service Args: sink_name: Name for the sink destination: Destination (e.g., bigquery://project.dataset, storage://bucket-name) log_filter: Optional filter for which logs to export Returns: Success message or error |
google-cloud logging-list-log-sinks | {} | List all log sinks in the project Returns: List of log sinks or error message |
google-cloud logging-delete-log-sink | {sink_name: str} | Delete a log sink Args: sink_name: Name of the sink to delete Returns: Success message or error |
google-cloud logging-export-logs-to-bigquery | {dataset_id: str, table_id: str, log_filter?: str = "", days_back?: int = 1} | Export logs to BigQuery Args: dataset_id: BigQuery dataset ID table_id: BigQuery table ID log_filter: Filter for which logs to export days_back: Number of days back to export (default: 1) Returns: Success message or error |
google-cloud logging-create-log-bucket | {bucket_id: str, location?: str = "global", retention_days?: int = 30} | Create a log bucket for storing logs Args: bucket_id: ID for the log bucket location: Location for the bucket (default: global) retention_days: Log retention period in days (default: 30) Returns: Success message or error |
google-cloud compute-list-instances | {zone?: str = ""} | List Compute Engine instances Args: zone: Optional zone filter, if empty lists from all zones Returns: List of instances or error message |
google-cloud compute-create-instance | {instance_name: str, zone: str, machine_type?: str = "e2-micro"} | Create a new Compute Engine instance Args: instance_name: Name for the new instance zone: Zone where to create the instance machine_type: Machine type (default: e2-micro) Returns: Success message or error |
google-cloud compute-delete-instance | {instance_name: str, zone: str} | Delete a Compute Engine instance Args: instance_name: Name of the instance to delete zone: Zone where the instance is located Returns: Success message or error |
google-cloud compute-start-instance | {instance_name: str, zone: str} | Start a Compute Engine instance Args: instance_name: Name of the instance to start zone: Zone where the instance is located Returns: Success message or error |
google-cloud compute-stop-instance | {instance_name: str, zone: str} | Stop a Compute Engine instance Args: instance_name: Name of the instance to stop zone: Zone where the instance is located Returns: Success message or error |
google-cloud compute-restart-instance | {instance_name: str, zone: str} | Restart a Compute Engine instance Args: instance_name: Name of the instance to restart zone: Zone where the instance is located Returns: Success message or error |
google-cloud compute-get-instance | {instance_name: str, zone: str} | Get detailed information about a Compute Engine instance Args: instance_name: Name of the instance zone: Zone where the instance is located Returns: Instance information or error message |
google-cloud compute-list-zones | {} | List all available Compute Engine zones Returns: List of zones or error message |
google-cloud compute-wait-for-operation | {operation_name: str, zone: str, timeout_minutes?: int = 5} | Wait for a Compute Engine operation to complete Args: operation_name: Name of the operation to wait for zone: Zone where the operation is running timeout_minutes: Maximum time to wait in minutes (default: 5) Returns: Operation status or timeout message |
git
Use git --help for Git operations on workspace repositories.
python3
Execute Python code directly under the agent workspace and return stdout and stderr. Code can be pasted into a .py file and run with python3.
Python cannot launch subprocesses or make direct network requests. Run the documented service commands directly in the shell. Use Python for local file processing and generating JSON arguments.