---
name: workspace-commands
description: The shell commands and task tools available in this workspace.
---
# Available commands
Python (`python` or `python3`), Perl, JavaScript/Node.js, and TypeScript
runtimes are unavailable. Use the shell commands and task CLIs documented
below; do not probe for or attempt to install other runtimes.
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq unzip
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`.
## 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-calendar
Use `google-calendar <command> '<JSON arguments>'`. Run
`google-calendar <command> --help` to get more information.
| Command | Arguments | Description |
|---|---|---|
| `google-calendar create-event` | `{summary: str, start: {dateTime: str, timeZone?: str}, end: {dateTime: str, timeZone?: str}, description?: str, location?: str}` | Creates a new event in Google Calendar — `summary`: Event title; `start.dateTime`: Start time (ISO format); `start.timeZone`: Time zone; `end.dateTime`: End time (ISO format); `end.timeZone`: Time zone; `description`: Event description; `location`: Event location |
| `google-calendar get-event` | `{eventId: str}` | Retrieves details of a specific event — `eventId`: ID of the event to retrieve |
| `google-calendar update-event` | `{eventId: str, summary?: str, start?: {dateTime: str, timeZone?: str}, end?: {dateTime: str, timeZone?: str}, description?: str, location?: str}` | Updates an existing event — `eventId`: ID of the event to update; `summary`: New event title; `start.dateTime`: New start time (ISO format); `start.timeZone`: Time zone; `end.dateTime`: New end time (ISO format); `end.timeZone`: Time zone; `description`: New event description; `location`: New event location |
| `google-calendar delete-event` | `{eventId: str}` | Deletes an event from the calendar — `eventId`: ID of the event to delete |
| `google-calendar list-events` | `{timeMin: str, timeMax: str, maxResults?: number, orderBy?: "startTime" \| "updated"}` | Lists events within a specified time range — `timeMin`: Start of time range (ISO format); `timeMax`: End of time range (ISO format); `maxResults`: Maximum number of events to return; `orderBy`: Sort order |
| name | workspace-commands |
|---|
| description | The shell commands and task tools available in this workspace. |
|---|
Available commands
Python (python or python3), Perl, JavaScript/Node.js, and TypeScript runtimes are unavailable. Use the shell commands and task CLIs documented below; do not probe for or attempt to install other runtimes.
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq unzip
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.
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-calendar
Use google-calendar <command> '<JSON arguments>'. Run google-calendar <command> --help to get more information.
| Command | Arguments | Description |
|---|
google-calendar create-event | {summary: str, start: {dateTime: str, timeZone?: str}, end: {dateTime: str, timeZone?: str}, description?: str, location?: str} | Creates a new event in Google Calendar — summary: Event title; start.dateTime: Start time (ISO format); start.timeZone: Time zone; end.dateTime: End time (ISO format); end.timeZone: Time zone; description: Event description; location: Event location |
google-calendar get-event | {eventId: str} | Retrieves details of a specific event — eventId: ID of the event to retrieve |
google-calendar update-event | {eventId: str, summary?: str, start?: {dateTime: str, timeZone?: str}, end?: {dateTime: str, timeZone?: str}, description?: str, location?: str} | Updates an existing event — eventId: ID of the event to update; summary: New event title; start.dateTime: New start time (ISO format); start.timeZone: Time zone; end.dateTime: New end time (ISO format); end.timeZone: Time zone; description: New event description; location: New event location |
google-calendar delete-event | {eventId: str} | Deletes an event from the calendar — eventId: ID of the event to delete |
google-calendar list-events | `{timeMin: str, timeMax: str, maxResults?: number, orderBy?: "startTime" \ | "updated"}` | Lists events within a specified time range — timeMin: Start of time range (ISO format); timeMax: End of time range (ISO format); maxResults: Maximum number of events to return; orderBy: Sort order |