An all-in-one toolkit to build agentic applications that turn natural language into real-world actions.
What is Dexto?
Dexto is a universal intelligence layer for building collaborative, context-aware AI Agents & agentic apps. It orchestrates LLMs, tools, and data into persistent, stateful systems with memory, so you can rapidly create AI assistants, digital companions & copilots that think, act and feel alive.
Dexto combines a configuration-driven framework, robust runtime, and seamless developer experience so you can build, deploy, and iterate on your agents easily.
Framework – Define agent behavior in YAML. Instantly swap models and tools without touching code.
– Define agent behavior in YAML. Instantly swap models and tools without touching code. Runtime – Execution with orchestration, session management, conversation memory, and multimodal support.
– Execution with orchestration, session management, conversation memory, and multimodal support. Interfaces & Tooling – Native support for CLI, Web, APIs, and a TypeScript SDK.
With Dexto, you can build:
Autonomous Agents - Agents that plan, execute, and adapt to user goals.
- Agents that plan, execute, and adapt to user goals. Digital Companions - AI assistants & copilots that remember context and anticipate needs.
- AI assistants & copilots that remember context and anticipate needs. MCP Clients - Connect multiple tools, files, APIs, and data via MCP Servers.
- Connect multiple tools, files, APIs, and data via MCP Servers. MCP Servers - Dexto Web UI and MCP playground help you to easily test your own MCP servers.
- Dexto Web UI and MCP playground help you to easily test your own MCP servers. Multi-Agent Systems - Architect agents that collaborate, delegate, and solve complex tasks together.
- Architect agents that collaborate, delegate, and solve complex tasks together. Agent-as-a-Service – Transform your existing SaaS products and APIs into dynamic, conversational experiences.
– Transform your existing SaaS products and APIs into dynamic, conversational experiences. Agentic Applications – Integrate Dexto as a reasoning engine to power interactive, multimodal, AI-native applications.
What You Get
Batteries Included – Session management, tool orchestration, multimodal support, and production-ready observability.
– Session management, tool orchestration, multimodal support, and production-ready observability. 50+ LLMs – Instantly switch between OpenAI, Anthropic, Google, Groq, local models or bring your own.
– Instantly switch between OpenAI, Anthropic, Google, Groq, local models or bring your own. Run Anywhere – Local for privacy, cloud for reach, or hybrid. Same agent, any deployment.
– Local for privacy, cloud for reach, or hybrid. Same agent, any deployment. Native Multimodal – Text, images, files, and tools in a single conversation. Upload screenshots, ask questions, take actions.
– Text, images, files, and tools in a single conversation. Upload screenshots, ask questions, take actions. Persistent Sessions – Conversations, context, and memory are saved and can be exported, imported, or shared across environments.
– Conversations, context, and memory are saved and can be exported, imported, or shared across environments. Flexible Interfaces – One agent, endless ways to interact: Ready-to-use CLI, WebUI, APIs, or integrate with your own UI.
– One agent, endless ways to interact: Ready-to-use CLI, WebUI, APIs, or integrate with your own UI. 30+ Tools & MCP – Integrate tools and connect to external servers via the Model Context Protocol (MCP) or use our internal tools.
– Integrate tools and connect to external servers via the Model Context Protocol (MCP) or use our internal tools. Pluggable Storage – Use Redis, PostgreSQL, SQLite, in-memory, S3 and more for cache, database & blob backends.
– Use Redis, PostgreSQL, SQLite, in-memory, S3 and more for cache, database & blob backends. Human in the loop - Configure approval policies for tool execution, agents can also remember which tools are safe per session.
- Configure approval policies for tool execution, agents can also remember which tools are safe per session. Observability – Built-in OpenTelemetry distributed tracing, token usage monitoring, and error handling.
Installation
# NPM global npm install -g dexto # —or— build from source # this sets up dexto CLI from the cloned code git clone https://github.com/truffle-ai/dexto.git cd dexto && pnpm install && pnpm install-cli
Quick Start
# 1. Run setup workflow - this prompts for your preferred LLM and API keys and opens the Web UI dexto # 2. Try a multi-step task in the web UI: " create a snake game in HTML/CSS/JS, then open it in the browser " # 3. Start interactive CLI mode instead of web UI dexto --mode cli
In 2 -> Dexto will use filesystem tools to write code and browser tools to open it — all from a single prompt. The Web UI (default mode) allows you to navigate previous conversations and experiment with different models, tools and more.
The interactive CLI (3) allows you to interact with agents in the terminal.
See the CLI Guide for full details.
Skip Tool Prompts While Prototyping
dexto --auto-approve " refactor my project using the filesystem and browser tools "
Use the --auto-approve flag to bypass confirmation prompts when you trust the tools being invoked—perfect for fast local iteration. Remove the flag when you want explicit approval again.
Logs
Logs are stored in ~/.dexto/logs directory by default.
Use DEXTO_LOG_TO_CONSOLE=true to log to console when running dexto.
Use DEXTO_LOG_LEVEL=debug for debug logs.
Agent Recipes
Dexto comes with pre-built agent recipes for common use cases. Install and use them instantly:
# List available agents dexto list-agents # Install specific agents dexto install nano-banana-agent podcast-agent coding-agent # Use an agent with one shot prompt dexto --agent nano-banana-agent --mode cli " create a futuristic cityscape with flying cars " dexto --agent podcast-agent --mode cli " generate a podcast intro with two hosts discussing AI " dexto --agent coding-agent --mode cli " create a landing page for a coffee brand inspired by star wars " # Alternatively, start the agent in web UI and put in the prompt yourself dexto --agent nano-banana-agent
Available Agents:
Coding Agent – Code generation, refactoring, debugging
– Code generation, refactoring, debugging Nano Banana Agent – Advanced image generation and editing using Google's Nano Banana (Gemini 2.5 Flash Image)
– Advanced image generation and editing using Google's Nano Banana (Gemini 2.5 Flash Image) Podcast Agent – Advanced podcast generation using Google Gemini TTS for multi-speaker audio content
– Advanced podcast generation using Google Gemini TTS for multi-speaker audio content Sora Video Agent – AI video generation using OpenAI's Sora with custom settings, remixing, and reference support
– AI video generation using OpenAI's Sora with custom settings, remixing, and reference support Database Agent – Demo agent for SQL queries and database operations
– Demo agent for SQL queries and database operations GitHub Agent – GitHub operations, PR analysis, and repository management
– GitHub operations, PR analysis, and repository management Image Editor Agent – Image editing and manipulation
– Image editing and manipulation Music Agent – Music creation and audio processing
– Music creation and audio processing Talk2PDF Agent – Document analysis and conversation
– Document analysis and conversation Product Researcher – Product naming and branding research
– Product naming and branding research Triage Agent – Demo multi-agent customer support routing system
Each agent is pre-configured with the right tools, prompts, and LLM settings for its domain. No setup required—just install and start building.
📚 See the full Agent Registry for detailed information about all agents, their capabilities, use cases, and requirements.
More ready-to-run recipes live in agents/ .
Examples & Demos
🎙️ Podcast Agent: Generate AI Podcasts
Task: Generate an intro for a podcast about the latest in AI.
dexto --agent podcast-agent
👁️ Computer Vision Agent: Face Detection & Annotation Using OpenCV
Task: Detect all faces in this image and draw bounding boxes around them.
dexto --agent image-editor-agent
🎮 Coding Agents: Create apps on demand
Build full-stack applications, websites, and interactive games with AI-powered coding agents. Customize them to create your own coding agents.
Task: Can you create a snake game in a new folder and open it when done?
dexto --agent coding-agent
📧 Portable Agents: Use your agents from Cursor
Dexto agents are designed to be modular, composable and portable, allowing you to run them from anywhere. In this example, we connect to dexto as an MCP server via Cursor to use our podcast agent from above.
🎯 Triage Agent: Multi-Agent Customer Support
Create multi-agent systems that can intelligently coordinate and delegate tasks among themselves based on the user query.
dexto --agent triage-agent
🛠️ Adding Custom MCP Servers
You can add your own Model Context Protocol (MCP) servers to extend Dexto's capabilities with new tools or data sources. Just edit your agent YAML or add it directly in the WebUI.
🧠 Memory: Persistent Context & Learning
Create and save memories. Your agent automatically uses it to create personalized experiences.
🛒 MCP Store: Tool Discovery & Integration
Equip your agents from 20+ MCP Servers and start using them via chat - instantly.
Bring your own keys
Can't find an MCP? Contribute here!
📝 Human In The Loop: Dynamic Form Generation
Agents can generate structured forms when they need additional data to make it easier to collect extra info & approvals from users.
More Examples:
🛒 Browser Agent: Amazon Shopping Assistant Task: Can you go to amazon and add some snacks to my cart? I like trail mix, cheetos and maybe surprise me with something else? # Default agent has browser tools dexto
🎮 Playground: Interactive Development Environment A testing playground to view the tools in your MCP servers before connecting them to LLMs to see the detailed response structures.
📧 Email to Slack: Automated Email Summaries Task: Summarize emails and send highlights to Slack dexto --agent ./agents/examples/email_slack.yml
🖼️ Hugging Face: Image Generation Task: Generate a photo of a baby panda.
Run Modes
Mode Command Best for Web UI dexto Friendly chat interface w/ image support (default) Interactive CLI dexto --mode cli Everyday automation & quick tasks Headless Server dexto --mode server REST & WebSocket APIs for agent interaction MCP Server (Agent) dexto --mode mcp Exposing your agent as a tool for others via stdio MCP Server (Aggregator) dexto mcp --group-servers Re-exposing tools from multiple MCP servers via stdio Discord Bot dexto --mode discord Community servers & channels (Requires Setup) Telegram Bot dexto --mode telegram Mobile chat (Requires Setup)
Run dexto --help for all flags, sub-commands, and environment variables.
Configuration
Agent Configuration
Dexto treats each configuration as a unique agent allowing you to define and save combinations of LLMs, servers, storage options, etc. based on your needs for easy portability. Define agents in version-controlled YAML. Change the file, reload, and chat—state, memory, and tools update automatically.
Example configuration:
# agents/my-agent.yml llm : provider : openai model : gpt-5-mini apiKey : $OPENAI_API_KEY mcpServers : filesystem : type : stdio command : npx args : ['-y', '@modelcontextprotocol/server-filesystem', '.'] web : type : stdio command : npx args : ['-y', '@modelcontextprotocol/server-brave-search'] systemPrompt : | You are a helpful AI assistant with access to files and web search.
LLM Providers
Switch between providers instantly—no code changes required.
Provider Models Setup OpenAI gpt-5 , gpt-5-mini , gpt-5-nano , gpt-4.1 , gpt-4.1-mini , gpt-4.1-nano , gpt-4o , gpt-4o-mini , gpt-4o-audio-preview , o4-mini , o3 , o3-mini , o1 export OPENAI_API_KEY=... Anthropic claude-haiku-4-5-20251001 , claude-sonnet-4-5-20250929 , claude-opus-4-1-20250805 , claude-4-opus-20250514 , claude-4-sonnet-20250514 , claude-3-7-sonnet-20250219 , claude-3-5-sonnet-20240620 , claude-3-5-haiku-20241022 export ANTHROPIC_API_KEY=... Google gemini-2.5-pro , gemini-2.5-flash , gemini-2.5-flash-lite , gemini-2.0-flash , gemini-2.0-flash-lite export GOOGLE_GENERATIVE_AI_API_KEY=... Groq llama-3.3-70b-versatile , meta-llama/llama-4-scout-17b-16e-instruct , meta-llama/llama-4-maverick-17b-128e-instruct , qwen/qwen3-32b , gemma-2-9b-it , openai/gpt-oss-20b , openai/gpt-oss-120b , moonshotai/kimi-k2-instruct , deepseek-r1-distill-llama-70b export GROQ_API_KEY=... xAI grok-4 , grok-3 , grok-3-mini , grok-code-fast-1 export XAI_API_KEY=... Cohere command-a-03-2025 , command-r-plus , command-r , command-r7b export COHERE_API_KEY=...
# Switch models via CLI dexto -m claude-sonnet-4-5-20250929 dexto -m gemini-2.5-pro
You can configure things like LLM, system prompt, MCP servers, storage, sessions, human-in-the loop, telemetry and more!
See our Configuration Guide for complete setup instructions.
Programmatic API
Install the @dexto/core library, and build applications with the DextoAgent class. Everything the CLI can do, your code can too.
npm install @dexto/core
import { DextoAgent } from '@dexto/core' ; // Create and start agent const agent = new DextoAgent ( { llm : { provider : 'openai' , model : 'gpt-5-mini' , apiKey : process . env . OPENAI_API_KEY } } ) ; await agent . start ( ) ; // Run tasks const response = await agent . run ( 'List the 5 largest files in this repo' ) ; console . log ( response ) ; // Hold conversations await agent . run ( 'Write a haiku about TypeScript' ) ; await agent . run ( 'Make it funnier' ) ; await agent . stop ( ) ;
See our TypeScript SDK docs for complete examples with MCP tools, sessions, and advanced features.
Advanced Usage
Session Management
Create and manage multiple conversation sessions with persistent storage.
const agent = new DextoAgent ( config ) ; await agent . start ( ) ; // Create and manage sessions const session = await agent . createSession ( 'user-123' ) ; await agent . run ( 'Hello, how can you help me?' , undefined , 'user-123' ) ; // List and manage sessions const sessions = await agent . listSessions ( ) ; const sessionHistory = await agent . getSessionHistory ( 'user-123' ) ; await agent . deleteSession ( 'user-123' ) ; // Search across conversations const results = await agent . searchMessages ( 'bug fix' , { limit : 10 } ) ;
LLM Management
Switch between models and providers dynamically.
// Get current configuration const currentLLM = agent . getCurrentLLMConfig ( ) ; // Switch models (provider inferred automatically) await agent . switchLLM ( { model : 'gpt-5-mini' } ) ; await agent . switchLLM ( { model : 'claude-sonnet-4-5-20250929' } ) ; // Switch model for a specific session id 1234 await agent . switchLLM ( { model : 'gpt-5-mini' } , '1234' ) // Get supported providers and models const providers = agent . getSupportedProviders ( ) ; const models = agent . getSupportedModels ( ) ; const openaiModels = agent . getSupportedModelsForProvider ( 'openai' ) ;
MCP Manager
For advanced MCP server management, use the MCPManager directly. See the MCP Manager SDK docs for full details.
import { MCPManager } from '@dexto/core' ; const manager = new MCPManager ( ) ; // Connect to MCP servers await manager . connectServer ( 'filesystem' , { type : 'stdio' , command : 'npx' , args : [ '-y' , '@modelcontextprotocol/server-filesystem' , '.' ] } ) ; // Access tools, prompts, and resources const tools = await manager . getAllTools ( ) ; const prompts = await manager . getAllPrompts ( ) ; const resources = await manager . getAllResources ( ) ; // Execute tools const result = await manager . executeTool ( 'readFile' , { path : './README.md' } ) ; await manager . disconnectAll ( ) ;
Storage & Persistence
Configure storage backends for production-ready persistence and caching. See the Storage Configuration guide for full details.
# agents/production-agent.yml storage : cache : type : redis url : $REDIS_URL maxConnections : 100 database : type : postgres connectionString : $POSTGRES_CONNECTION_STRING maxConnections : 25 sessions : maxSessions : 1000 sessionTTL : 86400000 # 24 hours
Supported Backends:
Cache : Redis, In-Memory (fast, ephemeral)
: Redis, In-Memory (fast, ephemeral) Database: PostgreSQL, SQLite, In-Memory (persistent, reliable)
Use Cases:
Development : In-memory for quick testing
: In-memory for quick testing Production : Redis + PostgreSQL for scale
: Redis + PostgreSQL for scale Simple: SQLite for single-instance persistence
See the DextoAgent API Documentation for complete method references.
CLI Reference
Click to expand for full CLI reference (`dexto --help`) Usage: dexto [options] [command] [prompt...] Dexto CLI - AI-powered assistant with session management Basic Usage: dexto Start web UI (default) dexto "query" Run one-shot query (auto-uses CLI mode) dexto -p "query" Run one-shot query, then exit cat file | dexto -p "query" Process piped content CLI Mode: dexto --mode cli Start interactive CLI REPL Session Management: dexto -c Continue most recent conversation dexto -c -p "query" Continue with one-shot query, then exit dexto -r "" "query" Resume with one-shot query Tool Confirmation: dexto --auto-approve Auto-approve all tool executions Agent Selection: dexto --agent coding-agent Use installed agent by name dexto --agent ./my-agent.yml Use agent from file path dexto -a agents/custom.yml Short form with relative path Advanced Modes: dexto --mode server Run as API server dexto --mode discord Run as Discord bot dexto --mode telegram Run as Telegram bot dexto --mode mcp Run as MCP server Session Commands: dexto session list|history|delete • search Search: dexto search  [--session ] [--role ] See https://docs.dexto.ai for documentation and examples Arguments: prompt Natural-language prompt to run once. If not passed, dexto will start as an interactive CLI Options: -v, --version output the current version -a, --agent  Agent ID or path to agent config file -p, --prompt  Run prompt and exit. Alternatively provide a single quoted string as positional argument. -s, --strict Require all server connections to succeed --no-verbose Disable verbose output --no-interactive Disable interactive prompts and API key setup --skip-setup Skip global setup validation (useful for MCP mode, automation) -m, --model  Specify the LLM model to use --router  Specify the LLM router to use (vercel or in-built) --auto-approve Always approve tool executions without confirmation prompts -c, --continue Continue most recent conversation -r, --resume  Resume session by ID --mode  The application in which dexto should talk to you - web | cli | server | discord | telegram | mcp (default: "web") --web-port  port for the web UI (default: 3000) (default: "3000") --api-port  port for the API server (default: web-port + 1) --no-auto-install Disable automatic installation of missing agents from registry -h, --help display help for command Commands: create-app Scaffold a new Dexto Typescript app init-app Initialize an existing Typescript app with Dexto setup [options] Configure global Dexto preferences install [options] [agents...] Install agents from registry or custom YAML files/directories uninstall [options] [agents...] Uninstall agents from the local installation list-agents [options] List available and installed agents which  Show the path to an agent session Manage chat sessions search [options]  Search session history mcp [options] Start Dexto as an MCP server. Use --group-servers to aggregate and re-expose tools from configured MCP servers. In the future, this command will expose the agent as an MCP server by default.
See the CLI Guide for full details.
Next Steps
Telemetry
We collect anonymous usage data (no personal/sensitive info) to help improve Dexto. This includes:
Commands used
Command execution time
Error occurrences
System information (OS, Node version)
LLM Models used
To opt-out:
Set env variable DEXTO_ANALYTICS_DISABLED=1
Contributing
We welcome contributions! Refer to our Contributing Guide for more details.
Community & Support
Dexto is built by the team at Truffle AI.
Join our Discord to share projects, ask questions, or just say hi!
If you enjoy Dexto, please give us a ⭐ on GitHub—it helps a lot!
Contributors
Thanks to all these amazing people for contributing to Dexto!
License
Elastic License 2.0. See LICENSE for full terms.