Skip to main content

dex-agents-builtin-cli

dex-agents-builtin-cli provides the dex-agents-builtin command. It runs the Dex built-in agent loop as a durable Dex agent session and chats with it in your terminal. No agent framework is involved: the session's own RunModel Step makes one model call through LiteLLM, and every tool call runs in its own Dex tool Step. The shared CLI core, dex-agents-cli-core, starts or reuses dexcli dev, connects the connectors MCP server, and runs the Worker. This package only builds the built-in loop agent with the core's LiteLLM model client.

Running it

The command needs Python 3.11 or later and a key for the model's provider:

export OPENAI_API_KEY=sk-...
uvx --from dex-agents-builtin-cli dex-agents-builtin

The first run asks the init questions and writes ~/.dex/agents/builtin.yaml. Then type a message at the > prompt. Approve or reject tool calls with y or n, answer the agent's questions, and press Ctrl-D to exit. The session stays in Dex, and the command prints the --resume line that continues it. See the CLI core README for every subcommand and option, and agents/cli for the configuration file.

LiteLLM reads each provider's standard environment variables, such as OPENAI_API_KEY and OPENAI_BASE_URL for openai/ models and ANTHROPIC_API_KEY for anthropic/ models. The command never prints or stores a key.

Configuration

The model defaults to openai/gpt-5.2; set model in the file or pass --model to change it. It is a LiteLLM model name, <provider>/<model>, such as anthropic/claude-opus-5-5. A session's settings may change the model and the instructions; each model call uses the values of its turn. The session setting reasoning_effort may be low, medium, or high. Each model call sends it as LiteLLM's reasoning_effort; LiteLLM turns it into thinking for Anthropic models. Without it, the provider's default applies. In the terminal UI, /effort sets it, and /model also offers openai/gpt-5.2, openai/gpt-5-mini, anthropic/claude-opus-5-5, and anthropic/claude-sonnet-5-5. system_prompt replaces the default instructions. The builtin section has no options yet, and any key in it is a configuration error.

Tools

The agent's tools are the CLI core's: its local tool source and the connector tools of the connectors MCP server. Every call runs in its own Dex tool Step, with the CLI core's policy. Reads run at once, file writes and shell commands wait for approval unless the shell allow list has the command, and the file tools stay in the workspace. See the CLI core README for the local tools.

The agent also has two built-in tools that the session runs itself:

  • ask_user asks you a question, and the turn waits for your answer.
  • write_todos replaces the session's plan, a short task list, with no approval.

Plan mode is on. Use it through the terminal UI (dexcli agents-tui) or the session API, not the plain chat, which sends /plan and /run as ordinary messages. In the terminal UI, /plan <message> starts a planning turn: the agent drafts a plan with write_todos and uses no other tool. /run approves the draft, and the agent runs it with every tool.

The names ask_user and write_todos are reserved, so a connector or local tool with one of these names fails the turn. This is a breaking change for such a tool: rename the conflicting connector or local tool, or use another harness.

Development

Develop with uv 0.12.2. The package resolves dex-agents and the CLI core from this repository by path. uv.lock pins litellm to the version the core's lock pins, and ci.sh checks that. ci.sh installs the locked dependencies, checks lint and types, and runs the tests against a private dexcli dev:

cd agents/cli/python/builtin
DEXCLI=/path/to/dexcli ./ci.sh

The tests run the command in a pseudo-terminal with a private home and an allow-listed environment. LiteLLM sends openai/ models to the scripted Responses API of ../testing; a refused proxy stops any other request. A fake connectors MCP server serves a connector read and write. The tests cover a chat turn and --resume, read_file without approval and write_file after approval, a connector read and an approved connector write that runs once, session settings that change the model, and a key in the builtin section. A reasoning_effort in the session settings reaches the next Responses API request, and an undeclared one fails the turn. They also cover a system_prompt set in the session settings, which reaches the next model request, and a rejected file write and connector write, which never run.

Metadata

Release files for dex-agents-builtin-cli 0.6.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dex-agents-builtin-cli 0.6.6
File Size Uploaded Provenance Actions
dex_agents_builtin_cli-0.6.6.tar.gz 8.3 kB Without provenance Details for dex_agents_builtin_cli-0.6.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dex-agents-builtin-cli 0.6.6
File Interpreter ABI Platform Actions
dex_agents_builtin_cli-0.6.6-py3-none-any.whl Python 3 none any Details for dex_agents_builtin_cli-0.6.6-py3-none-any.whl

Total release size: 18.9 kB

Release files / dex_agents_builtin_cli-0.6.6.tar.gz

Download URL dex_agents_builtin_cli-0.6.6.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1a68036accb24eb33cc2da07b2d0167fc23a870757568aefb66e92ac891ea7f6
BLAKE2b-256 checksum
How to use checksums
d5709690755644cf220321cf46bd98cf2b7ad65a6ac09aad666dd8fee22bfba4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dex_agents_builtin_cli-0.6.6-py3-none-any.whl

Download URL dex_agents_builtin_cli-0.6.6-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b24eaac3986fb351ce69f2876c38e897a587419528fc36fc48455293db7de38
BLAKE2b-256 checksum
How to use checksums
2babd3faeed104883cc072f74bebc7bda74e6a69b012681cd82500e4b31426cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for dex-agents-builtin-cli 0.6.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page