@entrydesk/cli
v2.0.0
Published
EntryDesk CLI - Interact with EntryDesk from your terminal
Readme
EntryDesk CLI
Command-line client for EntryDesk. Includes interactive task, tool output rendering, and scripting-friendly JSON output.
Installation
npm install -g @entrydesk/cliTo update an existing installation to the latest published version:
entrydesk update # check + install
entrydesk update --check # only check, don't install
entrydesk update --json # machine-readable resultQuick Start
Build and run from the repo:
pnpm --filter @entrydesk/cli build
pnpm --filter @entrydesk/cli start -- task -iInteractive task is also the default when no command is provided:
entrydeskAuthentication
entrydesk login # OAuth device flow — prints a verification URL + code to enter
entrydesk status
entrydesk logoutCredential Storage
By default, EntryDesk CLI stores credentials in the OS keychain when available.
If the keychain is unavailable, it falls back to an encrypted file at
~/.entrydesk/profiles/<profile>/credentials.json.
To force file storage (for example, in CI), set
ENTRYDESK_FORCE_FILE_STORAGE=true.
Task
entrydesk task -m "Hello" --model <model>
entrydesk task -a <agent>
entrydesk task -c 1 -m "Follow up"
entrydesk task -i
entrydesk task -i --full-output # Show full tool outputs
entrydesk task -i --no-file-system # Disable local file operations
entrydesk task -i --connectors id1,id2 # Use specific connectorsPiping input and output:
echo "Hello" | entrydesk task --model <model>
entrydesk task -m "Hi" --model <model> --plain
entrydesk task -m "Hi" --model <model> --output stream-jsonBrowse Resources
entrydesk workspaces
entrydesk workspaces switch <workspaceId> # Switch to a workspace
entrydesk models
entrydesk agents
entrydesk connectors
entrydesk skills
entrydesk tasks
entrydesk tasks 1Tools
entrydesk tool list # List all available tools
entrydesk tool list --prefix agent # Filter by tool prefix
entrydesk tool get agent__search_agents # Show a tool's details
entrydesk tool call agent__search_agents --input '{"limit": 5}'
entrydesk tool call agent__search_agents --input-file input.json
echo '{"limit": 5}' | entrydesk tool call agent__search_agentsMCP Server
entrydesk mcp-server # Stdio mode (for MCP clients)
entrydesk mcp-server --http --port 3100 # HTTP mode (for debugging)Skills Management
entrydesk skills # List all available skills
entrydesk skills --me # List only skills created by you
entrydesk skills upload my-skill.zip # Upload a skill zip file
entrydesk skills upload ./my-skill # Upload a skill folder (auto-zipped)
entrydesk skills delete skill-123 # Delete a skill you own
entrydesk skills --json # Output in JSON formatBudget Management
entrydesk budget # Show current workspace budget
entrydesk budget get # Get workspace budget
entrydesk budget set 100.00 # Set workspace budget to $100
entrydesk budget clear # Remove workspace budget
entrydesk budget --json # Output in JSON formatUsage Statistics
entrydesk usage # Show usage by all users, sorted by cost
entrydesk usage --limit 10 # Show top 10 users
entrydesk usage --sort-by operations # Sort by operation count
entrydesk usage --json # Output in JSON formatAgents Management
entrydesk agents # List available agents
entrydesk agents --json # Output in JSON format
entrydesk agents create --name "My Agent" --description "..." --system-prompt "..." --model-id <modelId>
entrydesk agents update <agentId> --name "New Name" --description "..." --system-prompt "..." --model-id <modelId>
entrydesk agents delete <agentId>Meetings and Recordings
entrydesk meeting # List meetings
entrydesk meeting get <meetingId> # Details and its recordings
entrydesk meeting summary <meetingId> # Print the summary as markdown
entrydesk meeting transcript <recordingId> # Print a transcript (--raw for timestamps)
entrydesk meeting share <meetingId> --add-user <userId> --role viewer
entrydesk recordings # List recordings
entrydesk recordings import https://example.com/audio.mp3 --title "Standup"
entrydesk recordings audio-url <recordingId> # Signed URL to stream the audio
entrydesk recordings retry <recordingId> # Retry a failed recordingWorkflows
entrydesk workflow # List workflows
entrydesk workflow create --name "Nightly report" --file ./report.js
entrydesk workflow run <workflowId> --args '{"date":"2026-06-20"}' --wait
entrydesk workflow runs <workflowId>
entrydesk workflow run-get <workflowId> <runId>Schedules
entrydesk schedules # List schedules
entrydesk schedules create --name "Daily digest" --prompt "Summarize yesterday" \
--agent-id <agentId> --starts-at 2026-07-01T09:00:00Z \
--repeat-type days --every 1 --time 09:00
entrydesk schedules run <scheduleId> # Run now; prints the created taskId
entrydesk schedules pause <scheduleId>
entrydesk schedules runs <scheduleId> # Run historyNotifications
entrydesk notifications # List notifications
entrydesk notifications --tab action # Only items that need action
entrydesk notifications unread # Unread count
entrydesk notifications read <notificationId>
entrydesk notifications read-allMarketplace
entrydesk marketplace search # Browse agents and skills
entrydesk marketplace search --type agent
entrydesk marketplace show <slug>
entrydesk marketplace install <slug> --type agent
entrydesk marketplace roles # Role tags you can filter bysearch and show are public; install requires login and
CreateAgent/CreateSkill permission in the current workspace.
Billing
entrydesk billing # Plan, seats, and extra-usage balance
entrydesk billing invoices --limit 10Billing endpoints require an interactive login — a workspace PAT
(ENTRYDESK_TOKEN) cannot read them.
Configuration
entrydesk config
entrydesk config set apiUrl http://localhost:3200
entrydesk config set hubUrl http://localhost:3000
entrydesk config unset apiUrlRunning Against a Local API
Point the CLI at a locally running API for one command, or persist it in the active profile:
ENTRYDESK_API_URL=http://localhost:3200 entrydesk status # one invocation
entrydesk config set apiUrl http://localhost:3200 # persist
entrydesk config set hubUrl http://localhost:3000 # login opens this Hub
entrydesk loginKeep local work in its own profile so it cannot overwrite the credentials you use against production:
entrydesk profile create local
entrydesk profile use localIf the local API serves a self-signed certificate, add
ENTRYDESK_IGNORE_SSL_ERRORS=true. It turns off TLS verification for the whole
process, so use it only against a local endpoint.
Tool Call Timeouts
Tool calls (entrydesk tool call, and every call proxied by entrydesk mcp-server)
wait up to 5 minutes for a response, and a server that reports progress keeps
resetting that window up to an absolute cap of 30 minutes. Raise either limit
in milliseconds:
ENTRYDESK_MCP_TIMEOUT=900000 entrydesk tool call slow__tool -i '{}'
ENTRYDESK_MCP_MAX_TIMEOUT=3600000 entrydesk tool call slow__tool -i '{}'For entrydesk mcp-server, set them in the env block of the MCP server entry so
the proxy never times out before the client that launched it does.
These are client-side limits. A tool served by a workspace connector is also
capped at 5 minutes by the API, so raising ENTRYDESK_MCP_TIMEOUT beyond that
only extends how long the CLI waits on EntryDesk's own long-running tools.
Environment Variables
Environment variables take precedence over stored profile config, so a value set for a single invocation always wins.
| Variable | Purpose | Expected value |
| -------------------------------- | ----------------------------------------------------------- | ------------------- |
| ENTRYDESK_API_URL | Override the API base URL | URL |
| ENTRYDESK_HUB_URL | Override the Hub URL used for login and share links | URL |
| ENTRYDESK_TOKEN | Personal access token for non-interactive auth | token |
| ENTRYDESK_WORKSPACE_ID | Workspace the PAT acts in (required with ENTRYDESK_TOKEN) | workspace id |
| ENTRYDESK_FORCE_FILE_STORAGE | Skip the OS keychain, store credentials in a file | true |
| ENTRYDESK_IGNORE_SSL_ERRORS | Disable TLS verification (local development only) | true |
| ENTRYDESK_MCP_TIMEOUT | Per-tool-call timeout (see Tool Call Timeouts above) | milliseconds |
| ENTRYDESK_MCP_MAX_TIMEOUT | Absolute cap for progress-extended tool calls | milliseconds |
| ENTRYDESK_SANDBOX | Enable sandbox authentication | true |
| ENTRYDESK_SANDBOX_ACCESS_TOKEN | Sandbox credential (required when sandbox is enabled) | token |
| ENTRYDESK_SANDBOX_WORKSPACE_ID | Sandbox workspace (required when sandbox is enabled) | workspace id |
| ENTRYDESK_DEBUG | Log credential-storage/keychain decisions | true |
| DEBUG | Verbose request, stream, and stack-trace output | any non-empty value |
| NO_COLOR | Disable colored tool output | any non-empty value |
Non-Interactive Authentication
For CI and automation, authenticate with a personal access token instead of
entrydesk login. Both variables are required — setting only the token fails
with an explicit error:
export ENTRYDESK_TOKEN=<personal-access-token>
export ENTRYDESK_WORKSPACE_ID=<workspace-id>
entrydesk tasks --jsonNote that billing endpoints are not readable with a PAT; they require an interactive login.
Profiles
entrydesk profile # List profiles
entrydesk profile create staging # Create a profile
entrydesk profile use staging # Switch active profile
entrydesk profile show staging # Show profile details
entrydesk profile clone default staging # Clone config defaults (no credentials)
entrydesk profile rename staging qa # Rename a profile (credentials follow)
entrydesk profile delete staging
# Run a single command against a specific profile without switching
entrydesk status --profile staging
entrydesk task -i --profile stagingDevelopment
pnpm --filter @entrydesk/cli dev
pnpm --filter @entrydesk/cli lint
pnpm --filter @entrydesk/cli typecheck