-
Notifications
You must be signed in to change notification settings - Fork 2
CLI Command Reference
This document is the public inventory of the tokenless command-line interface. It separates everyday workflows from lower-level controls and calls out commands that open provider pages, update local state, or only read cached data.
| Command | Purpose | Provider access |
|---|---|---|
tokenless help |
Show the built-in command summary. | None |
tokenless --version |
Print the installed CLI version. | None |
tokenless install |
Verify the packaged local runtime, selected browser, and daemon. | None |
tokenless setup |
Configure skills, browser, profiles, daemon, and one-time provider sign-in checks. | Yes |
tokenless doctor |
Read local configuration and runtime health without refreshing providers. | None |
tokenless config |
Read or update persistent Tokenless configuration. | None |
tokenless upgrade |
Upgrade the global CLI, skills, local runtime, and run doctor. | None |
tokenless profiles discover |
Discover importable Chrome or Brave profiles. | None |
tokenless profiles add |
Create or import a managed browser profile. | None |
tokenless profiles list |
List profiles and their last saved provider observations. | None |
tokenless profiles status |
Check one provider live and save the observation to the profile registry. | Yes |
tokenless profiles open |
Open one provider in a managed profile using a headed browser. | Yes |
tokenless profiles set-default |
Select the default managed profile. | None |
tokenless profiles reset |
Re-import an imported profile from its recorded source. | None |
tokenless profiles clear |
Delete one or all managed profiles as a human maintenance action. | None |
tokenless profiles remove |
Delete one managed profile with explicit confirmation. | None |
tokenless run |
Send a prompt and optional files through a visible provider session. | Yes |
tokenless state |
Inspect durable daemon job state. | None |
tokenless resume |
Resume a job waiting for user action in a headed browser. | Yes |
tokenless cancel |
Cancel a daemon job and confirm its canceled state. | None |
tokenless provider-status |
Perform a live provider authentication check. | Yes |
tokenless provider-controls |
Inspect visible model and effort controls. | Yes |
tokenless provider-configure |
Select exact visible model or effort labels. | Yes |
tokenless provider-action |
Execute one low-level visible provider action. | Yes |
tokenless chatgpt-controls |
Inspect ChatGPT model and effort controls. | Yes |
tokenless chatgpt-configure |
Configure ChatGPT-specific visible controls. | Yes |
tokenless snapshot-dom |
Capture and persist a sanitized provider DOM snapshot. | Yes |
tokenless daemon stop |
Gracefully stop a compatible local daemon. | None |
tokenless prompt |
Build a shareable Tokenless prompt without submitting it. | None |
Provider values are:
chatgpt
claude
gemini
grok
Runtime browser values are chrome, chrome-for-testing, chromium, edge, arc, and brave. Local profile import currently supports only Chrome and Brave.
Short options are case-sensitive:
-
-P <slug>is short for--profile <slug>. -
-p <provider>is short for--provider <provider>. -
-fis short for--freshduring setup. -
-Vis short for--version.
These options are available where the command needs the corresponding runtime behavior:
| Option | Meaning |
|---|---|
--json |
Write the final result as structured JSON. Live progress remains on stderr unless --quiet is used. |
--quiet |
Suppress live status events. |
--home <path> |
Use a non-default Tokenless state directory. |
--daemon-url <url> |
Use a specific loopback daemon URL. |
--browser-visibility <auto|headed|headless> |
Choose the browser visibility policy. |
--timeout-ms <ms> |
Override the command or job wait timeout. |
--daemon-start-timeout-ms <ms> |
Override daemon startup waiting. |
--runner-heartbeat-timeout-ms <ms> |
Override Playwright runner heartbeat waiting. |
--cancel-timeout-ms <ms> |
Override cancellation confirmation waiting. |
--target-url <url> |
Start from a provider-approved URL on the selected provider domain. |
Not every common option is accepted by every command. The command sections below list the meaningful options for each workflow.
Prints the concise built-in usage guide and the link to this reference.
tokenless helpTokenless does not currently expose per-command --help; use this document for the complete command inventory.
Prints the installed package version.
tokenless --version
tokenless -VVerifies the packaged Rust runtime, resolves the selected Chromium browser, saves the runtime configuration, and ensures that the local daemon is ready.
tokenless install --browser chrome --json
tokenless install --browsers chrome,brave --jsonMain options:
-
--browser <browser>selects one browser. -
--browsers <list>verifies a comma-separated browser list. -
--daemon-url,--daemon-start-timeout-ms,--home, and--jsoncontrol the local runtime.
This command does not configure a managed profile or check provider sign-in. Run tokenless setup afterward.
Runs the complete onboarding flow: verifies agent skills and the installed CLI version, chooses a browser, saves provider preferences, ensures the daemon is ready, creates or selects a managed profile, and performs one live sign-in check for every supported provider.
Interactive setup:
tokenless setupCreate or reuse a clean profile non-interactively:
tokenless setup --profile default --fresh --jsonImport an existing local browser profile:
tokenless setup \
--profile work \
--browser chrome \
--import-browser-profile "Profile 1" \
--consent-local-profile-copy \
--jsonMain options:
-
--profile <slug>selects or names the managed profile. -
--browser <browser>selects the local Chromium browser. -
--freshor-fcreates a clean managed profile. -
--defaultsselects non-interactive defaults. -
--import-browser-profile <directory-key>imports a Chrome or Brave profile. -
--browser-user-data-dir <path>disambiguates the source browser directory. -
--consent-local-profile-copyexplicitly authorizes the local copy. -
--reimport-profilereplaces an existing imported managed profile from a selected source. -
--label <name>sets the profile display label. -
--set-defaultmakes the selected profile the default. -
--refresh-skillsreinstalls the Tokenless agent skills. -
--skip-skill-installskips skill installation.
setup checks all supported providers; it does not accept --provider or --preferred-providers. --fresh cannot be combined with profile import or re-import.
Performs a read-only health report over Node.js, installed skills, packaged runtime, daemon identity and version, Playwright runner, browser, configuration, default managed profile, and cached provider readiness.
tokenless doctor --jsondoctor does not open provider pages and does not refresh authentication. Provider readiness comes from the last saved profile observation.
Main options: --browser, --daemon-url, --home, and --json.
Reads persistent configuration when called without configuration options:
tokenless config --jsonUpdates one or more persistent values when options are supplied:
tokenless config \
--preferred-providers chatgpt,claude,gemini,grok \
--browser chrome \
--browser-visibility auto \
--jsonConfigurable values:
--preferred-providers <list>--browser <browser>--browser-visibility <auto|headed|headless>--daemon-url <loopback-url>--home <path>
Runs the supported upgrade pipeline: update the global npm CLI, resolve and verify the installed CLI, refresh agent skills, update the local runtime, and run doctor.
tokenless upgrade
tokenless upgrade --jsonAccepted options are --json, --home, --daemon-url, --browser, --browsers, and --daemon-start-timeout-ms.
Gracefully stops a compatible daemon after verifying its identity.
tokenless daemon stop --jsonOptions: --home, --daemon-url, --timeout-ms, and --json.
The command does not kill an unverified or incompatible process merely because it occupies the configured port.
A managed profile is one persistent local browser identity. One profile may hold sessions for all supported providers.
Discovers importable local Chrome or Brave profiles without copying or modifying them.
tokenless profiles discover --browser chrome --json
tokenless profiles discover --browser brave --browser-user-data-dir /path/to/user-data --jsonCreates an empty managed profile:
tokenless profiles add -P work --label "Work" --set-default --jsonOr imports selected authentication data into a separate managed copy:
tokenless profiles add \
-P work \
--browser chrome \
--import-browser-profile "Profile 1" \
--preferred-providers chatgpt,claude \
--consent-local-profile-copy \
--set-default \
--jsonImport requires an explicit provider list and --consent-local-profile-copy.
Reads the profile registry and returns every managed profile.
tokenless profiles list
tokenless profiles list --jsonThis command is fast, read-only, and has no browser side effects. Provider fields are cached observations; use each provider's checkedAt to judge freshness.
Performs a live authentication check against one provider, then writes auth, visible username, visible subscription, and a new checkedAt value to the selected profile.
tokenless profiles status -P work -p chatgpt --jsonIf omitted, the profile resolves to the configured default and the provider falls back to the environment or ChatGPT.
Opens one provider in the selected managed profile with a headed browser and verifies navigation.
tokenless profiles open -P work -p claude --jsonUse this command for user-controlled sign-in, CAPTCHA, MFA, consent, or account switching. It does not replace profiles status; run the status command afterward to save a fresh observation.
Makes one registered profile the default.
tokenless profiles set-default -P work --jsonStops the Playwright runner and re-imports an imported managed profile from its recorded source.
tokenless profiles reset -P work
tokenless profiles reset -P work --preferred-providers chatgpt,claudeThis is a human maintenance command and does not accept --json. It works only for profiles that were originally imported.
Stops the runner and deletes either one managed profile or every managed profile:
tokenless profiles clear -P work
tokenless profiles clear --allExactly one of --profile and --all is required. This human maintenance command does not accept --json.
Deletes one managed profile through the structured, explicitly confirmed form:
tokenless profiles remove -P work --confirm-delete --json--confirm-delete is mandatory. Removing or clearing a managed profile deletes its Tokenless-managed browser data; it does not modify the source browser profile from which it may have been imported.
Builds a managed Playwright job, sends a prompt through the selected visible provider session, and normally waits for the correlated response.
tokenless run \
-P default \
-p chatgpt \
--prompt "Review this proposal." \
--jsonPrompt input:
- Use exactly one of
--prompt <text>or--prompt-file <path>. -
--project-root <path>defines the safe root for shareable file context. - Repeat
--file <path>to embed text from files inside the project root into the generated prompt. - Use
--context <text>or--context-file <path>for additional shareable turn context. - Repeat
--attach-file <path>to upload real files through the provider page.--fileand--attach-fileare different operations.
Provider controls:
-
--model <exact-visible-label>selects a visible model before submission. -
--effort <exact-visible-label>selects visible reasoning or effort. -
--thinking-effort <label>is an alternative effort option. -
--browser-visibility <auto|headed|headless>overrides the configured visibility policy.
Identity and continuity:
-
--task-id <id>supplies durable task identity. -
--idempotency-key <id>supplies the same identity when no task ID is used. -
--project-name <name>and--chat-name <name>contribute to derived task identity. -
--workspace-mode <auto|native|conversation>explicitly requests Workspace handling and requires--project-name. -
--project-instructions <text>or--project-instructions-file <path>supplies optional Workspace instructions.
Execution:
-
--no-waitsubmits and returns without waiting for the result. -
--long-runninguses the long-running wait budget and cannot be combined with--no-wait. -
--timeout-ms,--cancel-timeout-ms,--daemon-start-timeout-ms, and--runner-heartbeat-timeout-msoverride execution timing. -
--target-url <url>selects an approved starting URL on the provider domain.
Workspace modes:
-
autoprefers a proven native provider workspace and otherwise returns an explicit conversation fallback. -
nativerequires a native workspace and fails instead of falling back. -
conversationrequires conversation-scoped continuity.
Reads durable daemon job state without visiting the provider.
tokenless state --task-id task-123 -P default --json
tokenless state --job-id tlp_... --json
tokenless state -P default -p chatgpt --limit 10 --jsonProvide a task ID, job ID, or profile. Results are filtered to the managed Playwright backend, selected profile, and provider. --limit controls the number of returned jobs.
Resumes the same daemon job after it entered waiting_for_user.
tokenless resume \
--job-id tlp_... \
--browser-visibility headed \
--json--job-id and --browser-visibility headed are required. Resume preserves the original job and task identity.
Requests cancellation and succeeds only after the daemon confirms the canceled state.
tokenless cancel --job-id tlp_... --jsonMain options: --job-id, --cancel-timeout-ms, --daemon-url, --home, and --json.
These commands perform live visible-page operations. They do not make profiles list fresh unless the command is specifically profiles status.
Performs a live provider authentication action and returns the result.
tokenless provider-status -P default -p chatgpt --jsonFor a live check that also updates the profile registry, use tokenless profiles status.
Inspects the provider's visible model and effort choices.
tokenless provider-controls -P default -p claude --jsonSelects an exact visible model, effort label, or both.
tokenless provider-configure \
-P default \
-p chatgpt \
--model "GPT-5" \
--effort "High" \
--jsonAt least one control is required. Labels must match visible UI labels; model fallback lists are not supported by managed visible jobs.
ChatGPT-specific alias for inspecting model and effort controls.
tokenless chatgpt-controls -P default --jsonSelects ChatGPT-specific model or effort controls. It also accepts --chat-surface chat as an explicit surface constraint; other ChatGPT surfaces are rejected.
tokenless chatgpt-configure \
-P default \
--model "GPT-5" \
--effort "High" \
--jsonIf --provider is supplied, it must be chatgpt.
Executes exactly one low-level visible action.
tokenless provider-action \
-P default \
-p chatgpt \
--action capability.inspect \
--json| Action | Purpose | Required or relevant payload options |
|---|---|---|
capability.inspect |
Inspect visible, subscription-dependent capabilities. | None |
auth.status |
Inspect visible authentication and account state. | None |
model.inspect |
List visible model controls. | None |
model.select |
Select one exact visible model. | --model |
effort.inspect |
List visible effort controls. | None |
effort.select |
Select one exact visible effort. |
--effort or --thinking-effort
|
file.upload |
Upload files through visible file controls. | One or more --attach-file
|
workspace.ensure |
Ensure a native or conversation-scoped Workspace. |
--project-name; optional --workspace-mode and instructions |
prompt.clear |
Clear the visible composer. | None |
prompt.input |
Put text into the visible composer without submitting it. |
--prompt or --prompt-file
|
prompt.submit |
Submit the current visible composer. | None |
response.read |
Read the visible correlated response. | None |
snapshot.sanitized |
Return a sanitized structural snapshot. | None |
navigation.check |
Verify that the page is on an approved provider origin. | None |
blocker.check |
Inspect visible blockers such as sign-in or CAPTCHA. | None |
Action payloads are strict: options that do not apply to the selected action are rejected.
workspace.ensure defaults to --workspace-mode auto when the mode is omitted.
Captures a sanitized structural provider snapshot through the daemon and persists its metadata and snapshot files under the Tokenless home directory.
tokenless snapshot-dom -P default -p chatgpt --jsonUse provider-action --action snapshot.sanitized when persistence is not needed.
Builds the shareable # Tokenless Request document without opening a browser or submitting a provider job.
tokenless prompt \
--project-root /path/to/project \
--file src/example.ts \
--context "Only the selected files are shareable." \
--prompt "Review this implementation." \
--output /tmp/tokenless-request.mdOptions:
-
--promptor--prompt-filesupplies the user request. -
--project-rootdefines the allowed file boundary. - Repeat
--fileto include file text. -
--contextor--context-filesupplies shareable turn context. -
--outputwrites the compiled prompt to a file; otherwise it prints to stdout.
The command can also be invoked without the word prompt when the first argument is an option, but the explicit form is clearer in documentation and scripts.
The following aliases are accepted for compatibility. Prefer the canonical form in new scripts.
| Alias | Canonical form |
|---|---|
tokenless status |
tokenless state |
tokenless provider-auth-status |
tokenless provider-status |
tokenless inspect-provider-controls |
tokenless provider-controls |
tokenless inspect-chatgpt-controls |
tokenless chatgpt-controls |
--import-chrome-profile |
--import-browser-profile |
--chrome-user-data-dir |
--browser-user-data-dir |
--turn-context |
--context |
--turn-context-file |
--context-file |
--conversation-key |
--idempotency-key |
--clean-profile |
--fresh |
The three similarly named status workflows have different persistence behavior:
profiles list
reads only the saved profile registry
profiles status
visits one provider, checks auth/account controls,
and saves auth, username, subscription, and checkedAt
provider-status
visits one provider and returns a live auth result,
but is not the profile-registry refresh workflow
Commands that may open or operate a provider page are setup, profiles status, profiles open, run, resume, every provider inspection/configuration/action command, and snapshot-dom.