Supyagent
Package ReferenceCLI (Python)

Service Tools

List and run cloud integration tools from the command line.

Service Tools

The service commands let you discover and execute cloud integration tools directly from the terminal.

supyagent service tools

List all available cloud tools from your connected integrations.

supyagent service tools

Options

FlagTypeDefaultDescription
--provider, -pstringFilter tools by provider (e.g., google, slack, github)
--info, -istringShow detailed info for a specific tool
--jsonflagOutput as JSON instead of a formatted table

Examples

# List all tools
supyagent service tools

# Filter to Google tools only
supyagent service tools --provider google

# Get machine-readable output
supyagent service tools --json

# Show detailed info for a specific tool
supyagent service tools --info gmail_list_messages

Table Output

Name                        Description                              Provider
─────────────────────────── ──────────────────────────────────────── ────────
gmail_list_messages         List emails from Gmail inbox              google
gmail_send_message          Send an email via Gmail                   google
calendar_list_events        List upcoming events from calendar        google
slack_list_channels         List Slack channels in the workspace      slack
slack_send_message          Send a message to a Slack channel         slack
...

JSON Output

[
  {
    "name": "gmail_list_messages",
    "description": "List emails from Gmail inbox",
    "provider": "google",
    "parameters": {"type": "object", "properties": {"...": "..."}}
  }
]

Tool Info (--info)

The --info flag shows a detailed view of a single tool, including its description, HTTP method and path, and a parameter table:

supyagent service tools --info gmail_list_messages
╭──────────────────────────── Tool Info ─────────────────────────────╮
│ gmail_list_messages                                                │
│                                                                    │
│ List emails from Gmail inbox with summary info (from, to,          │
│ subject, date, snippet, labels, read/starred status).              │
╰────────────────────────────────────────────────────────────────────╯
  Provider:  google
  Service:   gmail
  Method:    GET
  Path:      /api/v1/gmail/messages

                          Parameters
  Name         Type      Required   Description
  ──────────── ───────── ────────── ─────────────────────────────────
  maxResults   integer              Number of messages to return
  q            string               Search query using Gmail syntax
  pageToken    string               Token for pagination

  Example:  supyagent service run gmail_list_messages --maxResults 5

supyagent service run

Execute a cloud tool with the given arguments and return the result as JSON.

supyagent service run <tool_name> [args]

Arguments

ArgumentDescription
tool_nameThe tool to run (e.g., gmail_send_message or gmail:send_message)
argsTool arguments — JSON string, --key value pairs, or read from file/stdin

Options

FlagTypeDefaultDescription
--input, -istringRead arguments from a JSON file, or - for stdin
--timeout, -tinteger180Timeout in seconds

Argument Formats

The service run command accepts arguments in several formats:

1. Inline JSON

supyagent service run gmail_send_message '{"to": "user@example.com", "subject": "Hello", "body": "Hi there"}'

2. Flag pairs

supyagent service run gmail_send_message --to user@example.com --subject Hello --body "Hi there"

Boolean and numeric values are automatically converted from strings.

3. From a file

supyagent service run gmail_send_message --input args.json

4. From stdin

echo '{"to": "user@example.com", "subject": "Hello"}' | supyagent service run gmail_send_message --input -

Output

Results are returned as JSON:

{
  "ok": true,
  "data": {
    "id": "msg_abc123",
    "threadId": "thread_xyz"
  }
}

On error:

{
  "ok": false,
  "error": "Invalid recipient address"
}

Binary Content

Some tools return binary content (PDFs, images, etc.). The CLI automatically writes binary data to temporary files and returns the file path in the result:

{
  "ok": true,
  "data": {
    "file": "/tmp/supyagent_abc123.pdf",
    "mimeType": "application/pdf"
  }
}

Examples

# List Gmail messages
supyagent service run gmail_list_messages

# Send a Slack message
supyagent service run slack_send_message --channel general --text "Hello from the CLI"

# Create a calendar event
supyagent service run calendar_create_event '{"summary": "Team standup", "start": "2025-01-15T09:00:00Z", "end": "2025-01-15T09:30:00Z"}'

# List GitHub repos with a timeout
supyagent service run github_list_repos --timeout 60

Tool Name Format

Both underscore and colon separators are accepted:

supyagent service run gmail_send_message   # underscores
supyagent service run gmail:send_message   # colon separator