@thenavidm/gumloop-mcp-cli
v3.0.0
Published
Gumloop MCP and native CLI with current REST schemas, private account profiles and confirmed operations.
Maintainers
Keywords
Readme
Gumloop MCP Server & CLI
Gumloop MCP server and CLI for Codex and AI agents. 92 tools for current flows, agents, sessions, Brain, skills, artifacts and administration, with private accounts and explicit operation approval. One shared implementation supplies both binaries and a desktop bundle.
Built and maintained by Navid Moazzez. Built on Slipway, which turns one definition of each tool into the MCP server and the CLI. The complete guide is on navid.me.
The terminal illustrates real command names and approval flow. It is not a recording of a provider account run. Gumloop already has official CLI and hosted MCP products; their supported platform, authentication and workflows are compared below.
Requires Node 22+ and eligible Gumloop API access for account operations. Validation: fixture tests, schema validation and protocol/artifact discovery are separate from provider-account and desktop GUI outcomes, which are not claimed. Section 7 has the measured token costs.
Two ways to use it
Command line
npm install -g @thenavidm/gumloop-mcp-cli@latest
gumloop-cli
gumloop-cli list-agents --agent
gumloop-cli schema start-flow
gumloop-cli start-flow --payload-file /absolute/private/approved-flow.json --account work --confirm --agentMCP server, for your AI app
codex mcp add gumloop -- npx -y @thenavidm/gumloop-mcp-cli@latestConfigure private credentials first. Ask: “Inspect this existing run and return its state; do not start another run.” Read INSTALL.md for complete client/OS routes.
Which one
| Where you work | Surface | | --- | --- | | Codex or shell agent | Shared CLI, local MCP or both | | Desktop chat | Compatible local MCP/desktop archive | | Scripts/CI | CLI or MCP client | | Remote-only client | Official hosted MCP |
Features
| Capability | CLI command | MCP tool | | --- | --- | --- | | Saved flows and inputs | list-flows / get-input-schema | list_flows / get_input_schema | | Run and inspect | start-flow / get-run-details | start_flow / get_run_details | | Agents and sessions | list-agents / create-session / retrieve-session | list_agents / create_session / retrieve_session | | Skills and Brain | create-skill / search-brain | create_skill / search_brain | | Private file delivery | download-artifact-file / download-files | download_artifact_file / download_files | | Explicit account selection | list-accounts / --account | list_accounts / account | | Diagnosis/setup | doctor / login | CLI utilities |
Contents
| Number | Section | What it covers | | --- | --- | --- | | 1 | What you can ask it | What you can ask it | | 2 | Quick install | Quick install | | 3 | Set up Gumloop access | Set up Gumloop access | | 4 | Connect your client | Connect your client | | 5 | Check it works | Check it works | | 6 | Output, flags and exit codes | Output, flags and exit codes | | 7 | MCP or CLI and token cost | MCP or CLI and token cost | | 8 | Every tool and argument | Every tool and argument | | 9 | Flows, sessions and account workflows | Flows, sessions and account workflows | | 10 | Jobs, pagination and private files | Jobs, pagination and private files | | 11 | Several private accounts | Several private accounts | | 12 | Writing safely | Writing safely | | 13 | How it works | How it works | | 14 | Your data | Your data | | 15 | Environment variables | Environment variables | | 16 | Updates and removal | Updates and removal | | 17 | Troubleshooting | Troubleshooting | | 18 | API coverage and comparisons | API coverage and comparisons | | 19 | Versions | Versions | | 20 | FAQ | FAQ |
1. What you can ask it
- Inspect accessible agents, versions, teams and models.
- List saved flows and their exact input schema before approving a run.
- Start only the selected flow, keep its returned run ID and read its state.
- Create a reviewed agent session, then inspect its approval requirements.
- Approve only the selected session checkpoint; do not approve a whole conversation implicitly.
- Upload a selected regular file and save an existing run download privately.
- Review organization usage, audit records and applicable role credit limits.
Actual discovery supplies 92 tools: 50 reads and 42 confirmation-gated operations, from all 91 reviewed current REST operations plus list_accounts. The shared handlers cover MCP and native Node CLI. This is protocol/schema evidence; account outcomes and desktop GUI installation remain separate.
2. Quick install
npm install -g @thenavidm/gumloop-mcp-cli@latest
gumloop-cli --version
gumloop-cli login
gumloop-cli doctor
gumloop-cli toolsNode 22+ is required for manual installation. The versioned desktop archive bundles production dependencies for a compatible host. Read INSTALL.md before configuring credentials. After private setup:
codex mcp add gumloop -- npx -y @thenavidm/gumloop-mcp-cli@latest
codex mcp list3. Set up Gumloop access
Private credentials and permissions
- Open the intended account's Connectors settings. Select Gumloop API Key and create the personal or team key needed for your task.
- Read Profile Settings for your user ID. A team ID is optional; older flow endpoints call it project_id. Set GUMLOOP_USER_ID and, when appropriate, GUMLOOP_TEAM_ID in private settings.
- Save the credential as a token-only regular file outside repositories. Set GUMLOOP_TOKEN_FILE to its absolute path; GUMLOOP_API_KEY is the alternative. Do not paste real keys into chat or command examples.
- Run gumloop-cli doctor, then doctor --network. The network check reads accessible agent metadata without printing account content.
- Inspect the exact schema and selected resource before confirming an operation. Runs can spend credits and invoke connected downstream services.
Current authentication docs require Pro or above for API keys. Personal keys act as their owner; team keys can act as team members through the requested user identity. Workflow-step credential settings decide personal/team credentials when project_id is supplied. Local profiles do not bypass account, role or team permissions.
Requests use Authorization: Bearer, with the selected profile user ID as x-auth-key, following the current SDK. Ordinary endpoints use https://api.gumloop.com/api/v1; non-streaming chat uses the separately documented https://ws.gumloop.com/api/v1. No arbitrary host override or redirects are accepted.
For POSIX, use a private 0700 directory and regular 0600 token-only file, no symlink, at most 64 KB. Windows requires a user-only ACL; POSIX checks do not verify it. File credentials override environment credentials and are cached until restart. The package does not read an automatic .env, use the OS keychain or start browser login.
OAuth and rotation
An already authorized OAuth access token can be supplied through the same private Bearer credential path. This wrapper does not register an OAuth app, accept refresh tokens, refresh access tokens or manage consent. OAuth docs describe invite-only client registration, authorization code with PKCE S256 and gumloop_api/userinfo scopes. gumloop_api requires Pro or above; requesting userinfo alone is not API permission. Use an expiry-aware issuer or the official CLI's supported OAuth/keychain workflow when automatic refresh is needed.
Rotate/revoke the intended grant through its provider controls, update private settings and restart. Removing a local package does not revoke provider credentials, undo runs or remove hosted data.
Plans, credits and rate limits
The AGPL wrapper is free; Gumloop account access and processing are billed separately. Credit documentation describes variable charges for model work, connector calls, compute and orchestration; Brain searches can also incur charges. Local read-only mode is an operation policy, not a guarantee of zero provider charges. Credit-consuming Brain search is confirmation-gated here.
Agent concurrency limits are organization-wide, currently 25 on Pro and 100 on Enterprise, with customizable Enterprise limits. Pro rejects excess agent work; Enterprise can queue it. Webhook triggers separately document 100 requests/minute per trigger. These are distinct limits; this wrapper's default 150 ms account/process pacing reserves no provider capacity.
GET 429 retries require an explicit Retry-After at most ten seconds, default two/max five retries. Missing/longer delays return exit 7. Mutations, paid Brain search and network timeouts never retry automatically. Local JSON request cap is 5 MiB; responses/downloads are capped at 10 MiB. These local caps are separate from vendor storage, upload and pagination limits.
4. Connect your client
INSTALL.md gives Codex-first setup, optional Claude Code, desktop archive/manual configuration, Cursor, VS Code/Copilot, Windsurf, Zed, Gemini CLI, Docker and Cline. The local transport is stdio. Configure private credentials in the actual client environment; GUI apps and remote containers do not inherit every shell setting.
The published official gumloop 0.5.2 CLI and current provider docs explicitly refuse native Windows and recommend WSL or the Python SDK. This wrapper targets Node 22+ on native Windows, macOS and Linux. Compatible desktop-host availability and GUI installation are separate from CLI portability. Remote-only clients can use the official https://mcp.gumloop.com/gumloop/mcp endpoint.
npm ships SKILL.md but does not register it automatically. Install it through the client's supported skill location. A connection/client approval and this wrapper's confirm argument are separate controls.
5. Check it works
gumloop-cli --version
gumloop-cli doctor
gumloop-cli doctor --network
gumloop-cli list-accounts --agent
gumloop-cli list-agents --agentDiscovery, schemas/help and account labels need no provider key. Network doctor reads GET /agents and prints only diagnostic status. This validates that request, not every account operation. Full discovery exposes 92 tools; read-only discovery exposes 50. Missing credentials exits 10, invalid input or refused operations exit 2. First validate an existing resource; do not start billable automation merely to test installation.
6. Output, flags and exit codes
Tool results go to stdout. Errors are JSON on stderr. JSON operations return structured results, so --select can retain nested fields. Private download operations return file metadata; binary bytes and signed results stay in the requested private file.
gumloop-cli start-flow --help
gumloop-cli schema start-flow
gumloop-cli list-agents --agent --select agents| Flag | What it does |
| --- | --- |
| --json | JSON output |
| --compact | Single-line JSON |
| --agent | Compact JSON and no prompts; never confirms a write |
| --select a,b.c | Keep selected fields; dotted paths descend and arrays are traversed |
| --confirm | Confirm the requested flow, session, paid search or account operation |
| --no-input, --no-color, --yes | Automation switches; none overrides the spending guard |
Global output flags apply to tool commands. doctor has its own --network option and returns a JSON diagnostic.
| Exit code | Meaning | What a script should do | | --- | --- | --- | | 0 | Success | Read stdout | | 1 | Unexpected error | Report it with the command that caused it | | 2 | Usage, invalid input, a refused write, an unknown command or a hidden write | Fix the input or confirm only the requested action | | 3 | Job or local upload file not found | Check the ID/path | | 4 | Authentication or entitlement rejected | Check private credential settings and permissions | | 5 | API or network failure | Inspect an accepted job before another paid submission | | 7 | Rate limited | Wait; do not loop over paid submissions | | 10 | Credentials not configured | Complete local setup |
The underscore spelling also works. start_flow and start-flow call the same tool. Nested objects use quoted JSON. Arrays of objects use repeated flags, one JSON object at a time.
7. MCP or CLI and token cost
MCP and CLI use the same catalogue, schemas, handlers and write guard: Slipway builds the MCP server, over stdio or --http, and the CLI from each tool's one definition. Shell scripts can select fields with --select after receipt; this does not change upstream result size or billing.
Measured on 2026-10-05 against 2.0.2, with Claude Code 2.1.286 on Claude Opus 5.5 (one short prompt with and without the server connected, the difference read from the API's own usage figures) and Codex 0.159.3 on gpt-6.1-sol:
| Cost | 2.0.2 | 3.0.0 |
| --- | --- | --- |
| Claude Code, every tool loaded, every message | 61,936 | 56,695 |
| Claude Code's default, tool search, every message | 1,486 | 1,488 |
| SKILL.md, read once | 3,150 | 3,210 |
| Codex over the CLI, one task, median of five | 107,376 | 83,661 |
| Codex over MCP, the same task, median of five | 78,443 | 78,249 |
The task was "find the command that starts a flow run, and the flags it requires". Every tool loaded costs less because parts that several tools repeated are written once. Over the CLI, every 3.0.0 run asked which, whose answer carries the command's help, where every 2.0.2 run read the command list and then the help: one request fewer. Over MCP, 3.0.0 cost slightly less. SKILL.md costs 60 more because it says how approval works over MCP and what exit codes 1 and 2 cover.
Tool-list bytes or characters divided by four are not API usage, and no other offering was measured.
Provider credits and client-model tokens are separate.
8. Every tool and argument
Every route and argument below comes from actual stdio discovery and the reviewed current schema. Use schema COMMAND for exact inline nested objects and unions.
| Tool | Route | Mode |
| --- | --- | --- |
| start_flow | POST /api/v1/start_pipeline | Confirm exact operation |
| kill_flow | POST /api/v1/kill_pipeline | Confirm exact operation |
| get_run_details | GET /api/v1/get_pl_run | Read |
| list_workbooks | GET /api/v1/list_workbooks | Read |
| list_flows | GET /api/v1/list_saved_items | Read |
| get_input_schema | GET /api/v1/get_inputs | Read |
| get_run_history | GET /api/v1/get_plrun_saved_item_map | Read |
| download_file | POST /api/v1/download_file | Read |
| download_files | POST /api/v1/download_files | Read |
| upload_file | POST /api/v1/upload_file | Confirm exact operation |
| upload_files | POST /api/v1/upload_files | Confirm exact operation |
| get_organization_audit_logs | GET /api/v1/get_audit_logs | Read |
| manage_project_users | POST /api/v1/manage_workspace_users | Confirm exact operation |
| manage_permission_group_users | POST /api/v1/manage_permission_group_users | Confirm exact operation |
| list_role_credit_limits | GET /api/v1/organizations/{organization_id}/roles/credit-limits | Read |
| get_role_credit_limit | GET /api/v1/organizations/{organization_id}/roles/{role_id}/credit-limit | Read |
| set_role_credit_limit | PUT /api/v1/organizations/{organization_id}/roles/{role_id}/credit-limit | Confirm exact operation |
| export_data | POST /api/v1/export_data | Confirm exact operation |
| get_export_status | GET /api/v1/export_status | Read |
| list_agents | GET /api/v1/agents | Read |
| create_agent | POST /api/v1/agents | Confirm exact operation |
| retrieve_agent | GET /api/v1/agents/{agent_id} | Read |
| update_agent | PATCH /api/v1/agents/{agent_id} | Confirm exact operation |
| create_chat_completion | POST /api/v1/chat/completions | Confirm exact operation |
| list_models | GET /api/v1/models | Read |
| route_model | POST /api/v1/models/route | Read |
| list_agent_versions | GET /api/v1/agents/{agent_id}/versions | Read |
| retrieve_agent_version | GET /api/v1/agents/{agent_id}/versions/{version_id} | Read |
| update_agent_skills | PATCH /api/v1/agents/{agent_id}/skills | Confirm exact operation |
| list_agent_mcp_servers | GET /api/v1/agents/{agent_id}/mcp-servers | Read |
| attach_agent_mcp_server | PUT /api/v1/agents/{agent_id}/mcp-servers/{server_id} | Confirm exact operation |
| detach_agent_mcp_server | DELETE /api/v1/agents/{agent_id}/mcp-servers/{server_id} | Confirm exact operation |
| list_sessions | GET /api/v1/agents/{agent_id}/sessions | Read |
| create_session | POST /api/v1/agents/{agent_id}/sessions | Confirm exact operation |
| retrieve_session | GET /api/v1/sessions/{session_id} | Read |
| rename_session | PATCH /api/v1/sessions/{session_id} | Confirm exact operation |
| send_message | POST /api/v1/sessions/{session_id}/messages | Confirm exact operation |
| cancel_session | POST /api/v1/sessions/{session_id}/cancel | Confirm exact operation |
| upload_session_file | POST /api/v1/sessions/{session_id}/files | Confirm exact operation |
| resolve_session_approvals | POST /api/v1/sessions/{session_id}/approvals | Confirm exact operation |
| list_queued_messages | GET /api/v1/sessions/{session_id}/queue | Read |
| queue_session_message | POST /api/v1/sessions/{session_id}/queue | Confirm exact operation |
| update_queued_message | PATCH /api/v1/sessions/{session_id}/queue/{queued_message_id} | Confirm exact operation |
| delete_queued_message | DELETE /api/v1/sessions/{session_id}/queue/{queued_message_id} | Confirm exact operation |
| send_queued_message | POST /api/v1/sessions/{session_id}/queue/{queued_message_id}/send | Confirm exact operation |
| list_mcp_servers | GET /api/v1/mcp/servers | Read |
| retrieve_mcp_server | GET /api/v1/mcp/servers/{server_id} | Read |
| list_mcp_server_tools | GET /api/v1/mcp/servers/{server_id}/tools | Read |
| list_mcp_server_resources | GET /api/v1/mcp/servers/{server_id}/resources | Read |
| read_mcp_server_resource | GET /api/v1/mcp/servers/{server_id}/resources/read | Read |
| list_mcp_server_prompts | GET /api/v1/mcp/servers/{server_id}/prompts | Read |
| get_mcp_server_prompt | POST /api/v1/mcp/servers/{server_id}/prompts/get | Read |
| call_mcp_tools | POST /api/v1/mcp/tools/call | Confirm exact operation |
| search_brain | POST /api/v1/brain/search | Confirm exact operation |
| list_brain_sources | GET /api/v1/brain/sources | Read |
| create_brain_source | POST /api/v1/brain/sources | Confirm exact operation |
| get_brain_source | GET /api/v1/brain/sources/{source_id} | Read |
| delete_brain_source | DELETE /api/v1/brain/sources/{source_id} | Confirm exact operation |
| list_brain_files | GET /api/v1/brain/sources/{source_id}/files | Read |
| upload_brain_files | POST /api/v1/brain/sources/{source_id}/files | Confirm exact operation |
| delete_brain_file | DELETE /api/v1/brain/sources/{source_id}/files/{file_id} | Confirm exact operation |
| get_brain_source_estimate | GET /api/v1/brain/sources/{source_id}/estimate | Read |
| approve_brain_source | POST /api/v1/brain/sources/{source_id}/approve | Confirm exact operation |
| list_skills | GET /api/v1/skills | Read |
| create_skill | POST /api/v1/skills | Confirm exact operation |
| update_skill | PATCH /api/v1/skills/{skill_id} | Confirm exact operation |
| delete_skill | DELETE /api/v1/skills/{skill_id} | Confirm exact operation |
| download_skill_file | GET /api/v1/skills/{skill_id}/download | Read |
| list_artifacts | GET /api/v1/agents/{agent_id}/artifacts | Read |
| download_artifact_file | GET /api/v1/artifacts/{artifact_id}/download | Read |
| list_browser_profiles | GET /api/v1/browser-profiles | Read |
| import_browser_profile_cookies | POST /api/v1/browser-profiles/{profile_id}/cookies | Confirm exact operation |
| list_teams | GET /api/v1/teams | Read |
| list_evaluations | GET /api/v1/agents/{agent_id}/evaluations | Read |
| run_evaluations | POST /api/v1/agents/{agent_id}/evaluations/run | Confirm exact operation |
| get_evaluation_metrics | GET /api/v1/agents/{agent_id}/evaluations/metrics | Read |
| retrieve_evaluation | GET /api/v1/agents/{agent_id}/evaluations/{evaluation_id} | Read |
| get_evaluation_config | GET /api/v1/agents/{agent_id}/evaluation-config | Read |
| update_evaluation_config | PATCH /api/v1/agents/{agent_id}/evaluation-config | Confirm exact operation |
| list_organizations | GET /api/v1/organizations | Read |
| get_evaluation_options | GET /api/v1/evaluation-options | Read |
| list_organization_evaluations | GET /api/v1/evaluations | Read |
| create_organization_evaluation | POST /api/v1/evaluations | Confirm exact operation |
| get_organization_evaluation | GET /api/v1/evaluations/{evaluation_id} | Read |
| update_organization_evaluation | PATCH /api/v1/evaluations/{evaluation_id} | Confirm exact operation |
| delete_organization_evaluation | DELETE /api/v1/evaluations/{evaluation_id} | Confirm exact operation |
| set_organization_evaluation_targets | PUT /api/v1/evaluations/{evaluation_id}/targets | Confirm exact operation |
| run_organization_evaluation | POST /api/v1/evaluations/{evaluation_id}/run | Confirm exact operation |
| list_organization_evaluation_results | GET /api/v1/evaluations/{evaluation_id}/results | Read |
| get_organization_evaluation_result | GET /api/v1/evaluations/{evaluation_id}/results/{result_id} | Read |
| get_organization_evaluation_metrics | GET /api/v1/evaluations/{evaluation_id}/metrics | Read |
| list_accounts | Local, no network | Read |
start_flow
gumloop-cli start-flow
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| user_id | No; body and guard rules apply | string | The id for the user initiating the flow. |
| project_id | No; body and guard rules apply | string | (Optional) The id of the project within which the flow is executed. |
| saved_item_id | No; body and guard rules apply | string | The id for the saved flow. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: saved_item_id, user_id. Profile defaults fill supported user/team identity fields before body validation.
kill_flow
gumloop-cli kill-flow
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| run_id | No; body and guard rules apply | string | The ID of the pipeline run to kill. |
| user_id | No; body and guard rules apply | string | The user ID. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | The project ID. Required if user_id is not provided. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: run_id. Profile defaults fill supported user/team identity fields before body validation.
get_run_details
gumloop-cli get-run-details
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| run_id | Yes | string | ID of the flow run to retrieve |
| user_id | No; body and guard rules apply | string | The id for the user initiating the flow. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | The id of the project within which the flow is executed. Required if user_id is not provided. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
list_workbooks
gumloop-cli list-workbooks
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| user_id | No; body and guard rules apply | string | The user ID for which to list workbooks. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | The project ID for which to list workbooks. Required if user_id is not provided. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
list_flows
gumloop-cli list-flows
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| user_id | No; body and guard rules apply | string | The user ID to for which to list items. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | The project ID for which to list items. Required if user_id is not provided. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
get_input_schema
gumloop-cli get-input-schema
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| saved_item_id | Yes | string | The ID of the saved item for which to retrieve input schemas. |
| user_id | No; body and guard rules apply | string | User ID that created the flow. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | Project ID that the flow is under. Required if user_id is not provided. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
get_run_history
gumloop-cli get-run-history
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| workbook_id | No; body and guard rules apply | string | The ID of the workbook to retrieve run history for. Required if saved_item_id is not provided. |
| saved_item_id | No; body and guard rules apply | string | The ID of the saved item to retrieve run history for. Required if workbook_id is not provided. |
| user_id | No; body and guard rules apply | string | The user ID. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | The project ID. Required if user_id is not provided. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
download_file
gumloop-cli download-file
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| file_name | No; body and guard rules apply | string | The name of the file to download. |
| run_id | No; body and guard rules apply | string | The ID of the flow run associated with the file. |
| saved_item_id | No; body and guard rules apply | string | The saved item ID associated with the file. |
| user_id | No; body and guard rules apply | string | Optional. The user ID associated with the flow run. |
| project_id | No; body and guard rules apply | string | Optional. The project ID associated with the flow run. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
| output_file | Yes | string | New absolute result file in a private owner-only directory. Private download or signed credential result stays out of model output; no overwrite. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: Inspect endpoint requirements. Profile defaults fill supported user/team identity fields before body validation.
output_file must be new and absolute in a private directory, reserved exclusively before the API call. Binary bytes or signed JSON are kept out of model output. This wrapper never follows a signed external download URL.
download_files
gumloop-cli download-files
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| file_names | No; body and guard rules apply | array | An array of file names to download. Items: string. |
| run_id | No; body and guard rules apply | string | The ID of the flow run associated with the files. |
| user_id | No; body and guard rules apply | string | The user ID associated with the files. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | The project ID associated with the files. Required if user_id is not provided. |
| saved_item_id | No; body and guard rules apply | string | Optional. The saved item ID associated with the files. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
| output_file | Yes | string | New absolute result file in a private owner-only directory. Private download or signed credential result stays out of model output; no overwrite. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: Inspect endpoint requirements. Profile defaults fill supported user/team identity fields before body validation.
output_file must be new and absolute in a private directory, reserved exclusively before the API call. Binary bytes or signed JSON are kept out of model output. This wrapper never follows a signed external download URL.
upload_file
gumloop-cli upload-file
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| file_name | No; body and guard rules apply | string | The name of the file to be uploaded. |
| file_content | No; body and guard rules apply | string | Base64 encoded content of the file. format: byte. |
| user_id | No; body and guard rules apply | string | The user ID associated with the file. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | The project ID associated with the file. Required if user_id is not provided. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
| file_path | No; body and guard rules apply | string | Regular local file path, no symlink, at most 3 MiB. Encoded as native base64 file_content; cannot mix with file_content or payload routes. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: Inspect endpoint requirements. Profile defaults fill supported user/team identity fields before body validation.
upload_files
gumloop-cli upload-files
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| files | No; body and guard rules apply | array | See the full input schema. Items: object. |
| user_id | No; body and guard rules apply | string | The user ID associated with the files. Required if project_id is not provided. |
| project_id | No; body and guard rules apply | string | The project ID associated with the files. Required if user_id is not provided. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: Inspect endpoint requirements. Profile defaults fill supported user/team identity fields before body validation.
get_organization_audit_logs
gumloop-cli get-organization-audit-logs
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| organization_id | Yes | string | The ID of the organization to retrieve audit logs for. |
| user_id | No; body and guard rules apply | string | Your user id -- you must be an organization admin to retrieve organization logs. |
| start_time | Yes | string | Start timestamp for log filtering (ISO format). format: date-time. |
| end_time | Yes | string | End timestamp for log filtering (ISO format). format: date-time. |
| event_types | No; body and guard rules apply | string | Comma-separated list of event types to filter by (e.g. user_sign_in,credential_retrieval). The singular event_type param accepts a single value. |
| user_ids | No; body and guard rules apply | string | Comma-separated list of user IDs whose events should be returned. |
| ip_addresses | No; body and guard rules apply | string | Comma-separated list of source IP addresses to filter by. The singular ip_address param accepts a single value. |
| workspace_ids | No; body and guard rules apply | string | Comma-separated list of workspace (team) IDs to filter by. The singular workspace_id param accepts a single value. |
| entity_ids | No; body and guard rules apply | string | Comma-separated list of entity IDs (agents, workbooks, files) to filter by. The singular entity_id param accepts a single value. |
| page | No; body and guard rules apply | integer | Page number for pagination. default: 1. |
| page_size | No; body and guard rules apply | integer | Number of records per page. default: 50. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
manage_project_users
gumloop-cli manage-project-users
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| organization_id | No; body and guard rules apply | string | The ID of the organization that the workspace belongs to. |
| user_id | No; body and guard rules apply | string | Your user id -- you must be an organization admin to manage workspace users. |
| workspace_id | No; body and guard rules apply | string | The ID of the workspace to manage users for. |
| action | No; body and guard rules apply | string | The action to perform - either 'add' or 'remove' a user. Values: add, remove. |
| user_email | No; body and guard rules apply | string | The email address of the target user to add or remove. |
| is_admin | No; body and guard rules apply | boolean | When adding a user, specify whether they should have admin privileges (default is false). |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: organization_id, user_id, workspace_id, action, user_email. Profile defaults fill supported user/team identity fields before body validation.
manage_permission_group_users
gumloop-cli manage-permission-group-users
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| organization_id | No; body and guard rules apply | string | The ID of the organization that the custom role belongs to. |
| user_id | No; body and guard rules apply | string | Your user id -- you must be an organization admin to manage custom role users. |
| group_id | No; body and guard rules apply | string | The ID of the custom role to manage users for. |
| action | No; body and guard rules apply | string | The action to perform - either 'add' or 'remove' a user. Values: add, remove. |
| user_email | No; body and guard rules apply | string | The email address of the target user to add or remove. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: organization_id, user_id, group_id, action, user_email. Profile defaults fill supported user/team identity fields before body validation.
list_role_credit_limits
gumloop-cli list-role-credit-limits
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| organization_id | Yes | string | The ID of the organization. minLength: 1. |
| user_id | No; body and guard rules apply | string | Your user id -- you must be an organization admin to manage custom role credit limits. |
| page_size | No; body and guard rules apply | integer | Number of roles per page. maximum: 100. default: 20. |
| cursor | No; body and guard rules apply | string | Opaque cursor from a previous response's next_cursor; omit for the first page. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
get_role_credit_limit
gumloop-cli get-role-credit-limit
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| organization_id | Yes | string | The ID of the organization the custom role belongs to. minLength: 1. |
| role_id | Yes | string | The ID of the custom role (the same ID used as group_id by the Manage custom role users endpoint). minLength: 1. |
| user_id | No; body and guard rules apply | string | Your user id -- you must be an organization admin to manage custom role credit limits. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
set_role_credit_limit
gumloop-cli set-role-credit-limit
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| organization_id | Yes | string | The ID of the organization the custom role belongs to. minLength: 1. |
| role_id | Yes | string | The ID of the custom role (the same ID used as group_id by the Manage custom role users endpoint). minLength: 1. |
| monthly_credit_limit | No; body and guard rules apply | integer/null | The monthly credit limit applied to each member of this role, or null to clear the role-level limit. minimum: 0. maximum: 1000000000. |
| user_id | No; body and guard rules apply | string | Your user id -- you must be an organization admin to manage custom role credit limits. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: monthly_credit_limit, user_id. Profile defaults fill supported user/team identity fields before body validation.
export_data
gumloop-cli export-data
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| user_id | No; body and guard rules apply | string | The ID of the user requesting the export. |
| data_type | No; body and guard rules apply | string | The type of data to export. Use "workflows" to export workflow run data, "agents" to export agent configuration data, "agent_interactions" to export agent interaction data, "credit_logs" to export credit transaction history, "interaction_evaluations" to export completed chat evaluations, or "gumstack" to export Gumstack tool call activity. Defaults to "workflows". Audit-log exports are available in the Gumloop app only, not through this endpoint. Values: workflows, agents, agent_interactions, credit_logs, interaction_evaluations, gumstack. default: workflows. |
| category_filter | No; body and guard rules apply | string | Only applicable when data_type is "credit_logs". Optional filter to export only credit logs matching a specific category (e.g., "PIPELINE_RUN", "AGENT_RUN", "CUSTOM_NODE_RD", "EXTERNAL_GUMCP_CALL"). When omitted, all categories are included. |
| export_level | No; body and guard rules apply | string | The scope of the export. Use "organization" to export across the entire organization, or "workspace" to export from a single workspace (requires exactly one ID in workspace_ids). Defaults to "organization". Not applicable when data_type is "credit_logs". Values: workspace, organization. default: organization. |
| export_fields | No; body and guard rules apply | array | Array of fields to include in the export. The available fields depend on the data_type. Workflow fields (when data_type is "workflows"): - workbook_id - The workbook identifier - workbook_name - The workbook name - workbook_created_ts - Workbook creation timestamp - user_id - The user identifier - user_email - The user's email address - workspace_id - The workspace identifier - workspace_name - The workspace name - run_id - The flow run identifier - credit_cost - Credits consumed by the run - pl_run_created_ts - Flow run creation timestamp - pl_run_finished_ts - Flow run completion timestamp - pipeline - The full pipeline configuration (JSON) Agent fields (when data_type is "agents"): - agent_id - The agent identifier - agent_name - The agent name - agent_description - The agent description - agent_model - The model used by the agent - agent_system_prompt - The agent's system prompt - agent_created_ts - Agent creation timestamp - agent_tools - Tools configured for the agent (JSON) - agent_metadata - Additional agent metadata (JSON) - agent_evaluations_enabled - Whether the agent's own Evaluations are turned on (true/false) - creator_email - Email of the user who created the agent - workspace_id - The workspace identifier - workspace_name - The workspace name - folder_id - The identifier of the folder containing the agent (empty when the agent is not in a folder) - folder_name - The name of the folder containing the agent (empty when the agent is not in a folder) Agent interaction fields (when data_type is "agent_interactions"): - interaction_id - Unique identifier for the chat session - agent_id - The agent identifier - agent_name - The agent name - interaction_type - Type of interaction (e.g., chat, slack, api, triggered) - interaction_name - Display name of the chat session - trigger_type - For triggered interactions, the specific trigger type (e.g., time_based, polling_new_record_salesforce). Null for non-triggered interactions. - interaction_created_ts - Chat session creation timestamp - user_email - Email of the user who initiated the chat - credit_cost - Total credits consumed (LLM + tool + flow) - llm_credit_cost - Credits consumed by LLM calls only - tool_credit_cost - Credits consumed by tool calls - flow_credit_cost - Credits consumed by pipeline runs - message_count - Number of messages in the conversation - workspace_id - The workspace identifier - workspace_name - The workspace name Interaction evaluation fields (when data_type is "interaction_evaluations"): - evaluation_id - Unique identifier for the evaluation row - interaction_id - The chat session that was evaluated (one chat can have several evaluation rows) - agent_id - The identifier of the agent that was evaluated - organization_evaluation_id - The organization-level evaluation this row belongs to (empty for agent-level rubrics) - evaluation_created_ts - When the evaluation reached its final state - status - The evaluation's state - grade - The grade the evaluation produced - call_outcome - The outcome the evaluation recorded for the conversation - sentiment - The sentiment the evaluation recorded - error_code - Error code when the evaluation could not complete - summary - The evaluation's written summary - evaluation_model - The model that ran the evaluation - credit_cost - Credits consumed by the evaluation - user_email - Email of the user whose chat was evaluated Credit log fields (when data_type is "credit_logs"): - user_email - Email of the user associated with the credit log entry - permission_group_id - Custom role ID(s) the user belongs to (semicolon-separated if multiple) (disabled by default) - permission_group_name - Custom role name(s) the user belongs to (semicolon-separated if multiple) (disabled by default) - timestamp - When the credit transaction occurred - category - The category of the credit log (e.g., PIPELINE_RUN, AGENT_RUN) - type - The specific type of credit charge - name - Display name of the credit log entry - amount - Number of credits charged or adjusted - balance - Credit balance after the transaction - log_id - Unique identifier for the credit log entry - correlation_id - Join key to the related run or interaction (disabled by default) - balance_scope - Whether the balance is organization- or user-scoped (disabled by default) - project_id - The project identifier (disabled by default) Not all combinations of selected fields are guaranteed to produce data for every row. Items: string. |
| start_date | No; body and guard rules apply | string | Start date for the export in ISO 8601 format (e.g., 2025-01-01T00:00:00Z). format: date-time. |
| end_date | No; body and guard rules apply | string | End date for the export in ISO 8601 format (e.g., 2025-12-31T23:59:59Z). format: date-time. |
| include_all_workspaces | No; body and guard rules apply | boolean | Whether to include all workspaces in the organization. When true, also sets include_personal_workspaces to true. Not applicable when data_type is "credit_logs". default: False. |
| include_personal_workspaces | No; body and guard rules apply | boolean | Whether to include personal workspaces in the export. Ignored if include_all_workspaces is true. Not applicable when data_type is "credit_logs". default: False. |
| workspace_ids | No; body and guard rules apply | array | An optional array of workspace IDs to include in the export. When export_level is "workspace", exactly one workspace ID is required. Ignored if include_all_workspaces is true. Not applicable when data_type is "credit_logs". Items: string. |
| entity_ids | No; body and guard rules apply | array | An optional array of specific entity IDs to filter the export. For workflow exports (data_type: "workflows"), these are workbook IDs. For agent exports (data_type: "agents") and agent interaction exports (data_type: "agent_interactions"), these are agent IDs. When provided, only data for the specified entities will be included. Not applicable when data_type is "credit_logs". Items: string. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: user_id, export_fields, start_date, end_date. Profile defaults fill supported user/team identity fields before body validation.
get_export_status
gumloop-cli get-export-status
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| user_id | No; body and guard rules apply | string | The ID of the user requesting the export status. |
| data_export_id | Yes | string | The unique identifier of the data export job to check (returned by the Export data endpoint). |
| download | No; body and guard rules apply | boolean | Set to true to download the export file directly when the export is completed. When true and the export state is COMPLETED, the response will be a CSV file download instead of JSON. default: False. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| output_file | Yes | string | New absolute result file in a private owner-only directory. Private download or signed credential result stays out of model output; no overwrite. minLength: 1. |
output_file must be new and absolute in a private directory, reserved exclusively before the API call. Binary bytes or signed JSON are kept out of model output. This wrapper never follows a signed external download URL.
list_agents
gumloop-cli list-agents
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| team_id | No; body and guard rules apply | string | Scope the listing to a single team. When omitted, returns agents owned by the authenticated user. |
| search | No; body and guard rules apply | string | Case-insensitive substring match against the agent name. |
| creator | No; body and guard rules apply | string | Filter to agents created by this user ID. |
| has_triggers | No; body and guard rules apply | boolean | When true, only returns agents that have at least one active trigger configured. |
| tool | No; body and guard rules apply | string | Filter to agents that use the specified MCP server as a tool. |
| flow | No; body and guard rules apply | string | Filter to agents that use the specified saved flow as a tool. |
| sort_order | No; body and guard rules apply | string | Sort order for the listing. Defaults to newest first. Values: newest, oldest, name_asc, name_desc. default: newest. |
| include_last_used | No; body and guard rules apply | boolean | When true, populates last_used_at on each agent with the timestamp of its most recent session. |
| include_last_updated | No; body and guard rules apply | boolean | When true, populates last_updated_at on each agent with the timestamp of its most recent configuration change. |
| page_size | No; body and guard rules apply | integer | Number of agents per page. Sending page_size or cursor opts into cursor pagination; requests that send neither return the full list. minimum: 1. maximum: 100. default: 20. |
| cursor | No; body and guard rules apply | string | Opaque cursor from a previous response's next_cursor. Pass it to fetch the next page. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
create_agent
gumloop-cli create-agent
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| name | No; body and guard rules apply | string | Display name for the agent. |
| model_name | No; body and guard rules apply | string | ID of the LLM the agent runs on. Use GET /models to discover valid values. |
| description | No; body and guard rules apply | string/null | See the full input schema. |
| system_prompt | No; body and guard rules apply | string/null | See the full input schema. |
| tools | No; body and guard rules apply | array | Tools the agent can call. Each tool is an object whose shape depends on the tool type. default: []. Items: object. |
| resources | No; body and guard rules apply | array | Resources attached to the agent. default: []. Items: object. |
| skill_ids | No; body and guard rules apply | array/null | IDs of skills to attach to the agent. Attachment happens inside the create transaction, so an invalid ID fails the whole request (no orphaned agent). Omit to attach none. The caller must hold INVOKE on each skill. After creation, manage skills with PATCH /agents/{agent_id}/skills. Items: string. |
| metadata | No; body and guard rules apply | object/null | Arbitrary key/value metadata stored on the agent. |
| folder_id | No; body and guard rules apply | string/null | ID of the folder to place the agent in. |
| is_active | No; body and guard rules apply | boolean | Whether the agent is active. Defaults to true. Setting this to false retires the agent: it disappears from GET /agents, and GET/PATCH /agents/{agent_id} return 404, so it cannot be reactivated through the API. This is not a pause switch — to stop an agent from running while keeping it reachable, disable its triggers instead. default: True. |
| agent_id | No; body and guard rules apply | string/null | Optional caller-supplied agent ID. When omitted, the server generates one. |
| team_id | No; body and guard rules apply | string/null | ID of the team to create the agent under. When omitted, the agent is owned by the authenticated user. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: name, model_name. Profile defaults fill supported user/team identity fields before body validation.
retrieve_agent
gumloop-cli retrieve-agent
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| agent_id | Yes | string | ID of the agent to retrieve. Also accepts the reserved aliases gumball and analytics. minLength: 1. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
update_agent
gumloop-cli update-agent
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| agent_id | Yes | string | ID of the agent to update. Also accepts the reserved aliases gumball and analytics. minLength: 1. |
| name | No; body and guard rules apply | string/null | See the full input schema. |
| model_name | No; body and guard rules apply | string/null | ID of the LLM the agent runs on. Use GET /models to discover valid values. |
| description | No; body and guard rules apply | string/null | See the full input schema. |
| system_prompt | No; body and guard rules apply | string/null | See the full input schema. |
| tools | No; body and guard rules apply | array/null | When provided, replaces the agent's tool list. Items: object. |
| resources | No; body and guard rules apply | array/null | When provided, replaces the agent's resource list. Items: object. |
| metadata | No; body and guard rules apply | object/null | See the full input schema. |
| is_active | No; body and guard rules apply | boolean/null | Setting this to false retires the agent: it disappears from GET /agents, and GET/PATCH /agents/{agent_id} return 404, so it cannot be reactivated through the API. This is not a pause switch — to stop an agent from running while keeping it reachable, disable its triggers instead. |
| team_id | No; body and guard rules apply | string/null | When provided, transfers ownership of the agent to this team. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: Inspect endpoint requirements. Profile defaults fill supported user/team identity fields before body validation.
create_chat_completion
gumloop-cli create-chat-completion
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| model | No; body and guard rules apply | string | Model slug. Use the id from GET /models or one of Gumloop's preset routes. |
| messages | No; body and guard rules apply | array | Conversation history. Roles system, developer, user, assistant, and tool. User messages accept multipart content with text and image_url parts. Assistant messages can carry tool_calls; answer each one with a tool message whose tool_call_id matches the call's id. Items: object. |
| stream | No; body and guard rules apply | boolean | Only non-streaming JSON is supported. Streaming requests are refused before fetch. |
| temperature | No; body and guard rules apply | number | Sampling temperature. |
| max_completion_tokens | No; body and guard rules apply | integer | Cap on completion tokens. Replaces the deprecated max_tokens field. |
| modalities | No; body and guard rules apply | array | Output modalities. Include "image" to route to an image-generation model. Items: string. |
| image_config | No; body and guard rules apply | object | Image-generation parameters (size, quality, aspect_ratio, background, output_format, partial_images). Optional. Image-generation models accept either modalities: ["image"] or image_config (or both); chat models ignore this field. |
| response_format | No; body and guard rules apply | object | Constrain the response. {type: "json_object"} returns a JSON object; {type: "json_schema", json_schema: {name, strict, schema}} returns JSON matching the supplied schema. |
| tools | No; body and guard rules apply | array | OpenAI-shape tool definitions ({type: "function", function: {name, description, parameters}}). Pass tool_choice to constrain selection. |
| tool_choice | No; body and guard rules apply | Union | "auto" lets the model choose and is the default when tools are sent. "none" disables tool calls, "required" forces a tool call, and {"type": "function", "function": {"name": "..."}} forces a specific tool. |
| provider | No; body and guard rules apply | object | OpenRouter provider routing config. Caller fields like sort and order are honored; ZDR/data_collection policy is server-enforced. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
| confirm | No; body and guard rules apply | boolean | Set true only when the user asked for exactly this action. |
| payload | No; body and guard rules apply | object | Complete JSON request body instead of body flags. Preserves current endpoint fields and values. |
| payload_file | No; body and guard rules apply | string | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. minLength: 1. |
A body is required. Native body flags, payload and payload_file are mutually exclusive. Required native body fields: model, messages. Profile defaults fill supported user/team identity fields before body validation.
list_models
gumloop-cli list-models
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| team_id | No; body and guard rules apply | string | Scope model availability to a specific team. When omitted, uses the authenticated user's default organization. |
| account | No; body and guard rules apply | string | Named private Gumloop account; selects private credentials and user/team identity. |
route_model
gumloop-cli route-model
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| input | No; body and guard rules apply | Union | The message to route. message is accepted as an alias. A string or an array of {type: text, text: ...} parts. |
| models | No; body and guard rules apply | array | Candidate model IDs to choose betw
