Skip to main content
A terminal interface for building agents with persistent memory. Agents maintain context across sessions, learn project conventions, and execute code with approval controls. The Deep Agents CLI has the following built-in capabilities:
  • File operations - read, write, and edit files in your project with tools that enable agents to manage and modify code and documentation.
  • Shell command execution - execute shell commands to run tests, build projects, manage dependencies, and interact with version control systems.
  • Web search - search the web for up-to-date information and documentation (requires Tavily API key).
  • HTTP requests - make HTTP requests to APIs and external services for data fetching and integration tasks.
  • Task planning and tracking - break down complex tasks into discrete steps and track progress through the built-in todo system.
  • Memory storage and retrieval - store and retrieve information across sessions, enabling agents to remember project conventions and learned patterns.
  • Human-in-the-loop - require human approval for sensitive tool operations.
Watch the demo video to see how the Deep Agents CLI works.

Quick start

Set your API key

Export as an environment variable:
Or create a .env file in your project root:

Run the CLI

Give the agent a task

The agent proposes changes with diffs for your approval before modifying files.
Install locally if needed:
The CLI uses Anthropic Claude Sonnet 4 by default. To use OpenAI:
Enable web search (optional):
API keys can be set as environment variables or in a .env file.

Configuration

Interactive mode

Use these commands within the CLI session:
  • /tokens - Display token usage
  • /clear - Clear conversation history
  • /exit - Exit the CLI
Execute shell commands directly by prefixing with !:

Set project conventions with memories

Agents store information in ~/.deepagents/AGENT_NAME/memories/ as markdown files using a memory-first protocol:
  1. Research: Searches memory for relevant context before starting tasks
  2. Response: Checks memory when uncertain during execution
  3. Learning: Automatically saves new information for future sessions
Organize memories by topic with descriptive filenames:
Teach the agent conventions once:
It remembers for future sessions:

Use remote sandboxes

Execute code in isolated remote environments for safety and flexibility. Remote sandboxes provide the following benefits:
  • Safety: Protect your local machine from potentially harmful code execution
  • Clean environments: Use specific dependencies or OS configurations without local setup
  • Parallel execution: Run multiple agents simultaneously in isolated environments
  • Long-running tasks: Execute time-intensive operations without blocking your machine
  • Reproducibility: Ensure consistent execution environments across teams
To use a remote sandbox, follow these steps:
  1. Configure your sandbox provider (Runloop, Daytona, or Modal):
  2. Run the CLI with a sandbox:
    The agent runs locally but executes all code operations in the remote sandbox. Optional setup scripts can configure environment variables, clone repositories, and prepare dependencies.
  3. (Optional) Create a setup.sh file to configure your sandbox environment:
    Store secrets in a local .env file for the setup script to access.
Sandboxes isolate code execution, but agents remain vulnerable to prompt injection with untrusted inputs. Use human-in-the-loop approval, short-lived secrets, and trusted setup scripts only. Note that sandbox APIs are evolving rapidly, and we expect more providers to support proxies that help mitigate prompt injection and secrets management concerns.

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.