dexto 1.5.4 → 1.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +371 -408
- package/dist/agents/coding-agent/coding-agent.yml +14 -0
- package/dist/cli/cli-subscriber.d.ts +0 -1
- package/dist/cli/cli-subscriber.d.ts.map +1 -1
- package/dist/cli/cli-subscriber.js +0 -8
- package/dist/cli/commands/interactive-commands/general-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/general-commands.js +44 -23
- package/dist/cli/commands/setup.js +12 -12
- package/dist/cli/ink-cli/components/Footer.d.ts +4 -1
- package/dist/cli/ink-cli/components/Footer.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/Footer.js +62 -18
- package/dist/cli/ink-cli/components/TodoPanel.d.ts +23 -0
- package/dist/cli/ink-cli/components/TodoPanel.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/TodoPanel.js +60 -0
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +3 -2
- package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/modes/StaticCLI.js +3 -2
- package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.js +4 -3
- package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/shared/MarkdownText.js +28 -1
- package/dist/cli/ink-cli/constants/processingPhrases.d.ts.map +1 -1
- package/dist/cli/ink-cli/constants/processingPhrases.js +7 -0
- package/dist/cli/ink-cli/containers/InputContainer.d.ts +3 -1
- package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +1 -1
- package/dist/cli/ink-cli/containers/InputContainer.js +3 -1
- package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts +8 -2
- package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/useAgentEvents.js +69 -3
- package/dist/cli/ink-cli/hooks/useCLIState.d.ts +4 -2
- package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/useCLIState.js +10 -0
- package/dist/cli/ink-cli/services/processStream.d.ts +2 -0
- package/dist/cli/ink-cli/services/processStream.d.ts.map +1 -1
- package/dist/cli/ink-cli/services/processStream.js +26 -55
- package/dist/cli/ink-cli/state/types.d.ts +17 -0
- package/dist/cli/ink-cli/state/types.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/messageFormatting.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/messageFormatting.js +1 -0
- package/dist/cli/utils/options.d.ts.map +1 -1
- package/dist/cli/utils/options.js +10 -2
- package/dist/config/cli-overrides.d.ts +2 -0
- package/dist/config/cli-overrides.d.ts.map +1 -1
- package/dist/config/cli-overrides.js +9 -0
- package/dist/index.js +7 -6
- package/dist/webui/assets/index-BglIVTSG.css +1 -0
- package/dist/webui/assets/index-DVQWNLpT.js +2059 -0
- package/dist/webui/index.html +2 -2
- package/package.json +10 -8
- package/dist/webui/assets/index-Bh2aB65S.js +0 -2054
- package/dist/webui/assets/index-CUVc7IDL.css +0 -1
package/README.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
<a href="https://dexto.ai">
|
|
2
|
-
<
|
|
2
|
+
<div align="center">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset=".github/assets/dexto_logo_light.svg">
|
|
5
|
+
<source media="(prefers-color-scheme: dark)" srcset=".github/assets/dexto_logo_dark.svg">
|
|
6
|
+
<img alt="Dexto" src=".github/assets/dexto_logo_dark.svg" width="55%" style="max-width: 1000px; padding: 48px 8px;">
|
|
7
|
+
</picture>
|
|
8
|
+
</div>
|
|
3
9
|
</a>
|
|
4
10
|
|
|
5
11
|
<p align="center">
|
|
@@ -9,433 +15,308 @@
|
|
|
9
15
|
<a href="https://deepwiki.com/truffle-ai/dexto"><img src="https://deepwiki.com/badge.svg"></a>
|
|
10
16
|
</p>
|
|
11
17
|
|
|
12
|
-
|
|
18
|
+
<p align="center"><b>An open agent harness for AI applications—ships with a powerful coding agent.</b></p>
|
|
13
19
|
|
|
14
20
|
<div align="center">
|
|
15
|
-
<img src="
|
|
21
|
+
<img src=".github/assets/dexto_title.gif" alt="Dexto Demo" width="600" />
|
|
16
22
|
</div>
|
|
17
23
|
|
|
24
|
+
---
|
|
25
|
+
|
|
18
26
|
## What is Dexto?
|
|
19
27
|
|
|
20
|
-
Dexto is
|
|
28
|
+
Dexto is an **agent harness**—the orchestration layer that turns LLMs into reliable, stateful agents that can take actions, remember context, and recover from errors.
|
|
21
29
|
|
|
22
|
-
|
|
30
|
+
Think of it like an operating system for AI agents:
|
|
23
31
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
32
|
+
| Component | Analogy | Role |
|
|
33
|
+
|-----------|---------|------|
|
|
34
|
+
| **LLM** | CPU | Raw processing power |
|
|
35
|
+
| **Context Window** | RAM | Working memory |
|
|
36
|
+
| **Dexto** | Operating System | Orchestration, state, tools, recovery |
|
|
37
|
+
| **Your Agent** | Application | Domain-specific logic and clients |
|
|
27
38
|
|
|
28
|
-
|
|
39
|
+
### Why Dexto?
|
|
29
40
|
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
33
|
-
- **MCP Servers** - Dexto Web UI and MCP playground help you to easily test your own MCP servers.
|
|
34
|
-
- **Multi-Agent Systems** - Architect agents that collaborate, delegate, and solve complex tasks together.
|
|
35
|
-
- **Agent-as-a-Service** – Transform your existing SaaS products and APIs into dynamic, conversational experiences.
|
|
36
|
-
- **Agentic Applications** – Integrate Dexto as a reasoning engine to power interactive, multimodal, AI-native applications.
|
|
41
|
+
- **Configuration-driven**: Define agents in YAML. Swap models and tools without touching code.
|
|
42
|
+
- **Batteries included**: Session management, tool orchestration, memory, multimodal support, and observability—out of the box.
|
|
43
|
+
- **Run anywhere**: Local, cloud, or hybrid. CLI, Web UI, REST API, Discord, Telegram, or embedded in your app.
|
|
37
44
|
|
|
38
|
-
|
|
45
|
+
### What You Can Build
|
|
39
46
|
|
|
40
|
-
- **
|
|
41
|
-
- **
|
|
42
|
-
- **
|
|
43
|
-
- **
|
|
44
|
-
- **
|
|
45
|
-
- **Flexible Interfaces** – One agent, endless ways to interact: Ready-to-use CLI, WebUI, APIs, or integrate with your own UI.
|
|
46
|
-
- **30+ Tools & MCP** – Integrate tools and connect to external servers via the Model Context Protocol (MCP) or use our internal tools.
|
|
47
|
-
- **Pluggable Storage** – Use Redis, PostgreSQL, SQLite, in-memory, S3 and more for cache, database & blob backends.
|
|
48
|
-
- **Human in the loop** - Configure approval policies for tool execution, agents can also remember which tools are safe per session.
|
|
49
|
-
- **Observability** – Built-in OpenTelemetry distributed tracing, token usage monitoring, and error handling.
|
|
47
|
+
- **Coding Agents** – Build, debug, and refactor code autonomously
|
|
48
|
+
- **Autonomous Agents** – Plan, execute, and adapt to user goals
|
|
49
|
+
- **Digital Companions** – Assistants that remember context and anticipate needs
|
|
50
|
+
- **MCP Clients & Servers** – Connect tools, files, APIs via Model Context Protocol
|
|
51
|
+
- **Multi-Agent Systems** – Agents that collaborate, delegate, and solve complex tasks together
|
|
50
52
|
|
|
51
53
|
---
|
|
52
54
|
|
|
53
|
-
##
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
# NPM global
|
|
57
|
-
npm install -g dexto
|
|
58
|
-
|
|
59
|
-
# —or— build from source
|
|
60
|
-
# this sets up dexto CLI from the cloned code
|
|
61
|
-
git clone https://github.com/truffle-ai/dexto.git
|
|
62
|
-
cd dexto && pnpm install && pnpm install-cli
|
|
63
|
-
|
|
64
|
-
```
|
|
55
|
+
## Coding Agent
|
|
65
56
|
|
|
66
|
-
|
|
57
|
+
Dexto ships with a **production-ready coding agent** you can use immediately via the CLI or Web UI.
|
|
67
58
|
|
|
68
59
|
```bash
|
|
69
|
-
#
|
|
60
|
+
# Launch the coding agent (default)
|
|
70
61
|
dexto
|
|
71
62
|
|
|
72
|
-
#
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
# 3. Start interactive CLI mode instead of web UI
|
|
76
|
-
dexto --mode cli
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
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.
|
|
80
|
-
|
|
81
|
-
The interactive CLI (3) allows you to interact with agents in the terminal.
|
|
82
|
-
|
|
83
|
-
See the [CLI Guide](https://docs.dexto.ai/docs/guides/cli/overview) for full details.
|
|
84
|
-
|
|
85
|
-
### Skip Tool Prompts While Prototyping
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
dexto --auto-approve "refactor my project using the filesystem and browser tools"
|
|
63
|
+
# Or explicitly
|
|
64
|
+
dexto --agent coding-agent
|
|
89
65
|
```
|
|
90
66
|
|
|
91
|
-
|
|
67
|
+
**What it can do:**
|
|
68
|
+
- Build new apps from scratch
|
|
69
|
+
- Read, write, and refactor code across your entire codebase
|
|
70
|
+
- Execute shell commands and run tests
|
|
71
|
+
- Spawn specialized sub-agents for exploration and planning
|
|
72
|
+
- Remember context across sessions with persistent memory
|
|
73
|
+
- Work with any of 50+ LLMs (swap models mid-conversation)
|
|
92
74
|
|
|
93
|
-
|
|
75
|
+
**Ready-to-use interfaces:**
|
|
76
|
+
- **Web UI** – Chat interface with file uploads, syntax highlighting, and MCP tool browser
|
|
77
|
+
- **CLI** – Terminal-native with `/commands`, streaming output, and session management
|
|
94
78
|
|
|
95
|
-
|
|
79
|
+
The coding agent is just one example of what you can build. Create your own agents by defining a YAML config—same architecture, your domain.
|
|
96
80
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
Use `DEXTO_LOG_LEVEL=debug` for debug logs.
|
|
81
|
+
---
|
|
100
82
|
|
|
101
|
-
##
|
|
83
|
+
## Quick Start
|
|
102
84
|
|
|
103
|
-
|
|
85
|
+
### Install
|
|
104
86
|
|
|
105
87
|
```bash
|
|
106
|
-
#
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
# Install specific agents
|
|
110
|
-
dexto install nano-banana-agent podcast-agent coding-agent
|
|
111
|
-
|
|
112
|
-
# Use an agent with one shot prompt
|
|
113
|
-
dexto --agent nano-banana-agent --mode cli "create a futuristic cityscape with flying cars"
|
|
114
|
-
dexto --agent podcast-agent --mode cli "generate a podcast intro with two hosts discussing AI"
|
|
115
|
-
dexto --agent coding-agent --mode cli "create a landing page for a coffee brand inspired by star wars"
|
|
88
|
+
# Install globally via npm
|
|
89
|
+
npm install -g dexto
|
|
116
90
|
|
|
117
|
-
#
|
|
118
|
-
|
|
91
|
+
# Or build from source
|
|
92
|
+
git clone https://github.com/truffle-ai/dexto.git
|
|
93
|
+
cd dexto && pnpm install && pnpm install-cli
|
|
119
94
|
```
|
|
120
95
|
|
|
121
|
-
|
|
122
|
-
- **Coding Agent** – Code generation, refactoring, debugging
|
|
123
|
-
- **Nano Banana Agent** – Advanced image generation and editing using Google's Nano Banana (Gemini 2.5 Flash Image)
|
|
124
|
-
- **Podcast Agent** – Advanced podcast generation using Google Gemini TTS for multi-speaker audio content
|
|
125
|
-
- **Sora Video Agent** – AI video generation using OpenAI's Sora with custom settings, remixing, and reference support
|
|
126
|
-
- **Database Agent** – Demo agent for SQL queries and database operations
|
|
127
|
-
- **GitHub Agent** – GitHub operations, PR analysis, and repository management
|
|
128
|
-
- **Image Editor Agent** – Image editing and manipulation
|
|
129
|
-
- **Music Agent** – Music creation and audio processing
|
|
130
|
-
- **Talk2PDF Agent** – Document analysis and conversation
|
|
131
|
-
- **Product Researcher** – Product naming and branding research
|
|
132
|
-
- **Triage Agent** – Demo multi-agent customer support routing system
|
|
133
|
-
- **Workflow Builder Agent** – Build and manage n8n automation workflows
|
|
134
|
-
- **Product Analysis Agent** – Product analytics and insights using PostHog
|
|
135
|
-
- **Gaming Agent** – Play GameBoy games like Pokemon through an emulator
|
|
136
|
-
|
|
137
|
-
Each agent is pre-configured with the right tools, prompts, and LLM settings for its domain. No setup required—just install and start building.
|
|
138
|
-
|
|
139
|
-
**📚 See the full [Agent Registry](https://docs.dexto.ai/docs/guides/agent-registry) for detailed information about all agents, their capabilities, use cases, and requirements.**
|
|
96
|
+
### Run
|
|
140
97
|
|
|
141
|
-
More ready-to-run recipes live in [`agents/`](https://github.com/truffle-ai/dexto/tree/HEAD/agents/).
|
|
142
|
-
|
|
143
|
-
## Examples & Demos
|
|
144
|
-
|
|
145
|
-
### 🎙️ Podcast Agent: Generate AI Podcasts
|
|
146
|
-
**Task:** `Generate an intro for a podcast about the latest in AI.`
|
|
147
98
|
```bash
|
|
148
|
-
|
|
99
|
+
# Start Dexto (launches setup wizard on first run)
|
|
100
|
+
dexto
|
|
149
101
|
```
|
|
150
102
|
|
|
151
|
-
|
|
103
|
+
**More options:**
|
|
152
104
|
|
|
153
|
-
### 👁️ Computer Vision Agent: Face Detection & Annotation Using OpenCV
|
|
154
|
-
**Task:** `Detect all faces in this image and draw bounding boxes around them.`
|
|
155
105
|
```bash
|
|
156
|
-
dexto --
|
|
106
|
+
dexto --mode cli # Terminal mode
|
|
107
|
+
dexto -p "create a landing page for a coffee shop" # One-shot task
|
|
108
|
+
dexto --auto-approve "refactor this codebase" # Skip confirmations
|
|
109
|
+
dexto -m claude-sonnet-4-5-20250929 # Switch models
|
|
110
|
+
dexto --help # Explore all options
|
|
157
111
|
```
|
|
158
112
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
### 🎮 Coding Agents: Create apps on demand
|
|
113
|
+
**Inside the interactive CLI**, type `/` to explore commands—switch models, manage sessions, configure tools, and more.
|
|
162
114
|
|
|
163
|
-
|
|
115
|
+
### Manage Settings
|
|
164
116
|
|
|
165
|
-
**Task:** `Can you create a snake game in a new folder and open it when done?`
|
|
166
117
|
```bash
|
|
167
|
-
|
|
118
|
+
# Configure defaults like LLM provider/model, API keys, or download local models
|
|
119
|
+
dexto setup
|
|
168
120
|
```
|
|
169
121
|
|
|
170
|
-
|
|
122
|
+
Logs are stored in `~/.dexto/logs/`. Use `DEXTO_LOG_LEVEL=debug` for verbose output.
|
|
171
123
|
|
|
124
|
+
---
|
|
172
125
|
|
|
173
|
-
|
|
126
|
+
## Core Features
|
|
174
127
|
|
|
175
|
-
|
|
128
|
+
### 50+ LLMs, Instant Switching
|
|
176
129
|
|
|
177
|
-
|
|
130
|
+
Switch models mid-conversation—no code changes, no restarts.
|
|
178
131
|
|
|
132
|
+
| Provider | Models |
|
|
133
|
+
|----------|--------|
|
|
134
|
+
| **OpenAI** | gpt-5.2, gpt-5.2-pro, gpt-5.2-codex, o4-mini |
|
|
135
|
+
| **Anthropic** | Claude Sonnet, Opus, Haiku (with extended thinking) |
|
|
136
|
+
| **Google** | Gemini 3 Pro, 2.5 Pro/Flash |
|
|
137
|
+
| **Groq** | Llama 4, Qwen, DeepSeek |
|
|
138
|
+
| **xAI** | Grok 4, Grok 3 |
|
|
139
|
+
| **Local** | Ollama, GGUF via node-llama-cpp (Llama, Qwen, Mistral, etc.) |
|
|
140
|
+
| **+ Gateways** | OpenRouter, AWS Bedrock, Vertex AI, LiteLLM |
|
|
179
141
|
|
|
142
|
+
**Run locally for privacy**: Local models keep data on your machine with automatic GPU detection (Metal, CUDA, Vulkan).
|
|
180
143
|
|
|
181
|
-
###
|
|
144
|
+
### MCP Integration (30+ Tools)
|
|
182
145
|
|
|
183
|
-
|
|
146
|
+
Connect to Model Context Protocol servers—Puppeteer, Linear, ElevenLabs, Firecrawl, Sora, and more.
|
|
184
147
|
|
|
185
|
-
```
|
|
186
|
-
|
|
148
|
+
```yaml
|
|
149
|
+
# agents/my-agent.yml
|
|
150
|
+
mcpServers:
|
|
151
|
+
filesystem:
|
|
152
|
+
type: stdio
|
|
153
|
+
command: npx
|
|
154
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
|
|
155
|
+
browser:
|
|
156
|
+
type: stdio
|
|
157
|
+
command: npx
|
|
158
|
+
args: ['-y', '@anthropics/mcp-server-puppeteer']
|
|
187
159
|
```
|
|
188
|
-
<img src=".github/assets/triage_agent_demo.gif" alt="Triage Agent Demo" width="600">
|
|
189
|
-
|
|
190
|
-
### 🛠️ Adding Custom MCP Servers
|
|
191
|
-
|
|
192
|
-
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.
|
|
193
|
-
|
|
194
|
-
<img src="https://github.com/user-attachments/assets/1a3ca1fd-31a0-4e1d-ba93-23e1772b1e79" alt="Add MCP Server Example" width="600"/>
|
|
195
|
-
|
|
196
|
-
### 🧠 Memory: Persistent Context & Learning
|
|
197
160
|
|
|
198
|
-
|
|
161
|
+
Browse and add servers from the MCP Store in the Web UI or via `/mcp` commands in the CLI.
|
|
199
162
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
### 🛒 MCP Store: Tool Discovery & Integration
|
|
203
|
-
|
|
204
|
-
Equip your agents from 20+ MCP Servers and start using them via chat - instantly.
|
|
205
|
-
- Bring your own keys
|
|
206
|
-
- Can't find an MCP? [Contribute here!](https://github.com/truffle-ai/dexto/blob/main/CONTRIBUTING.md)
|
|
207
|
-
|
|
208
|
-
<img src=".github/assets/mcp_store_demo.gif" alt="MCP Store Demo" width="600">
|
|
163
|
+
### Human-in-the-Loop Controls
|
|
209
164
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
Agents can generate structured forms when they need additional data to make it easier to collect extra info & approvals from users.
|
|
213
|
-
|
|
214
|
-
<img src=".github/assets/user_form_demo.gif" alt="User Form Demo" width="600">
|
|
165
|
+
Fine-grained control over what your agent can do:
|
|
215
166
|
|
|
167
|
+
```yaml
|
|
168
|
+
toolConfirmation:
|
|
169
|
+
mode: manual # Require approval for each tool
|
|
170
|
+
# mode: auto-approve # Trust mode for local development
|
|
171
|
+
toolPolicies:
|
|
172
|
+
alwaysAllow:
|
|
173
|
+
- mcp--filesystem--read_file
|
|
174
|
+
- mcp--filesystem--list_directory
|
|
175
|
+
alwaysDeny:
|
|
176
|
+
- mcp--filesystem--delete_file
|
|
177
|
+
```
|
|
216
178
|
|
|
179
|
+
Agents remember which tools you've approved per session.
|
|
217
180
|
|
|
218
|
-
|
|
181
|
+
### Persistent Sessions & Memory
|
|
219
182
|
|
|
220
|
-
|
|
221
|
-
<summary><strong>🛒 Browser Agent: Amazon Shopping Assistant</strong></summary>
|
|
183
|
+
Conversations persist across restarts. Create memories that shape agent behavior.
|
|
222
184
|
|
|
223
|
-
**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?`
|
|
224
185
|
```bash
|
|
225
|
-
#
|
|
226
|
-
dexto
|
|
227
|
-
```
|
|
228
|
-
<a href="https://youtu.be/C-Z0aVbl4Ik">
|
|
229
|
-
<img src="https://github.com/user-attachments/assets/3f5be5e2-7a55-4093-a071-8c52f1a83ba3" alt="Dexto: Amazon shopping agent demo" width="600"/>
|
|
230
|
-
</a>
|
|
231
|
-
|
|
232
|
-
</details>
|
|
186
|
+
# Continue last conversation
|
|
187
|
+
dexto -c
|
|
233
188
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
A testing playground to view the tools in your MCP servers before connecting them to LLMs to see the detailed response structures.
|
|
189
|
+
# Resume specific session
|
|
190
|
+
dexto -r session-abc123
|
|
238
191
|
|
|
239
|
-
|
|
192
|
+
# Search across all conversations
|
|
193
|
+
dexto search "database schema"
|
|
194
|
+
```
|
|
240
195
|
|
|
241
|
-
|
|
196
|
+
### Multi-Agent Systems
|
|
242
197
|
|
|
243
|
-
|
|
244
|
-
<summary><strong>📧 Email to Slack: Automated Email Summaries</strong></summary>
|
|
198
|
+
Agents can spawn specialized sub-agents to handle complex subtasks. The coding agent uses this to delegate exploration:
|
|
245
199
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
200
|
+
```yaml
|
|
201
|
+
# In your agent config
|
|
202
|
+
customTools:
|
|
203
|
+
- type: agent-spawner
|
|
204
|
+
allowedAgents: ["explore-agent"]
|
|
205
|
+
maxConcurrentAgents: 5
|
|
206
|
+
defaultTimeout: 300000 # 5 minutes
|
|
249
207
|
```
|
|
250
|
-
<img src="https://github.com/truffle-ai/dexto/blob/HEAD/assets/email_slack_demo.gif?raw=1" alt="Email to Slack Demo" width="600">
|
|
251
208
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
<details>
|
|
255
|
-
<summary><strong>🖼️ Hugging Face: Image Generation</strong></summary>
|
|
256
|
-
|
|
257
|
-
**Task:** `Generate a photo of a baby panda.`
|
|
209
|
+
**Built-in sub-agents:**
|
|
210
|
+
- **explore-agent** – Fast, read-only codebase exploration
|
|
258
211
|
|
|
259
|
-
|
|
212
|
+
Any agent in the [Agent Registry](#agent-registry) can be spawned as a sub-agent—including custom agents you create and register.
|
|
260
213
|
|
|
261
|
-
|
|
214
|
+
Sub-agents run ephemerally, auto-cleanup after completion, and forward tool approvals to the parent—so users see one unified approval flow.
|
|
262
215
|
|
|
263
216
|
---
|
|
264
217
|
|
|
265
218
|
## Run Modes
|
|
266
219
|
|
|
267
|
-
| Mode | Command |
|
|
220
|
+
| Mode | Command | Use Case |
|
|
268
221
|
|------|---------|----------|
|
|
269
|
-
| **Web UI** | `dexto` |
|
|
270
|
-
| **
|
|
271
|
-
| **
|
|
272
|
-
| **MCP Server
|
|
273
|
-
| **MCP Server (Aggregator)** | `dexto mcp --group-servers` | Re-exposing tools from multiple MCP servers via stdio |
|
|
274
|
-
| **Discord Bot** | [See `examples/discord-bot/`](examples/discord-bot/) | Community servers & channels (reference implementation) |
|
|
275
|
-
| **Telegram Bot** | [See `examples/telegram-bot/`](examples/telegram-bot/) | Mobile chat (reference implementation) |
|
|
276
|
-
|
|
277
|
-
Run `dexto --help` for **all flags, sub-commands, and environment variables**.
|
|
278
|
-
|
|
279
|
-
## Configuration
|
|
280
|
-
|
|
281
|
-
### Agent Configuration
|
|
222
|
+
| **Web UI** | `dexto` | Chat interface with file uploads (default) |
|
|
223
|
+
| **CLI** | `dexto --mode cli` | Terminal interaction |
|
|
224
|
+
| **Web Server** | `dexto --mode server` | REST & SSE APIs |
|
|
225
|
+
| **MCP Server** | `dexto --mode mcp` | Expose agent as an MCP server over stdio |
|
|
282
226
|
|
|
283
|
-
|
|
227
|
+
Platform integrations: [Discord](examples/discord-bot/), [Telegram](examples/telegram-bot/)
|
|
284
228
|
|
|
285
|
-
|
|
229
|
+
<details>
|
|
230
|
+
<summary><strong>Dexto as an MCP Server</strong></summary>
|
|
286
231
|
|
|
287
|
-
|
|
288
|
-
# agents/my-agent.yml
|
|
289
|
-
llm:
|
|
290
|
-
provider: openai
|
|
291
|
-
model: gpt-5-mini
|
|
292
|
-
apiKey: $OPENAI_API_KEY
|
|
232
|
+
**Transport: `stdio`**
|
|
293
233
|
|
|
294
|
-
|
|
295
|
-
filesystem:
|
|
296
|
-
type: stdio
|
|
297
|
-
command: npx
|
|
298
|
-
args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
|
|
299
|
-
web:
|
|
300
|
-
type: stdio
|
|
301
|
-
command: npx
|
|
302
|
-
args: ['-y', '@modelcontextprotocol/server-brave-search']
|
|
234
|
+
Connect your Dexto agent as an MCP server in Claude Code or Cursor:
|
|
303
235
|
|
|
304
|
-
|
|
305
|
-
|
|
236
|
+
```bash
|
|
237
|
+
dexto --mode mcp --auto-approve --no-elicitation # Default agent
|
|
238
|
+
dexto --mode mcp --agent coding-agent --auto-approve --no-elicitation
|
|
239
|
+
npx dexto --mode mcp --agent coding-agent --auto-approve --no-elicitation
|
|
306
240
|
```
|
|
307
241
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
Switch between providers instantly—no code changes required.
|
|
311
|
-
|
|
312
|
-
#### Built-in Providers
|
|
313
|
-
|
|
314
|
-
| Provider | Models | Setup |
|
|
315
|
-
|----------|--------|-------|
|
|
316
|
-
| **OpenAI** | `gpt-5.1-chat-latest`, `gpt-5.1`, `gpt-5.1-codex`, `gpt-5-mini`, `gpt-4.1`, `gpt-4o`, `o4-mini`, `o3`, `o1` | API key |
|
|
317
|
-
| **Anthropic** | `claude-sonnet-4-5-20250929`, `claude-opus-4-5-20251101`, `claude-haiku-4-5-20251001`, `claude-3-7-sonnet-20250219` | API key |
|
|
318
|
-
| **Google** | `gemini-3-pro-preview`, `gemini-3-pro-image-preview`, `gemini-3-flash-preview`, `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.0-flash` | API key |
|
|
319
|
-
| **Groq** | `llama-3.3-70b-versatile`, `gemma-2-9b-it`, `openai/gpt-oss-20b`, `openai/gpt-oss-120b`, `moonshotai/kimi-k2-instruct`, `meta-llama/llama-4-scout-17b-16e-instruct`, `meta-llama/llama-4-maverick-17b-128e-instruct`, `deepseek-r1-distill-llama-70b`, `qwen/qwen3-32b` | API key |
|
|
320
|
-
| **xAI** | `grok-4`, `grok-3`, `grok-3-mini`, `grok-code-fast-1` | API key |
|
|
321
|
-
| **Cohere** | `command-a-03-2025`, `command-r-plus`, `command-r`, `command-r7b` | API key |
|
|
242
|
+
Example MCP config for Claude Code or Cursor:
|
|
322
243
|
|
|
323
|
-
|
|
244
|
+
```json
|
|
245
|
+
{
|
|
246
|
+
"command": "npx",
|
|
247
|
+
"args": ["-y", "dexto", "--mode", "mcp", "--agent", "coding-agent", "--auto-approve", "--no-elicitation"]
|
|
248
|
+
}
|
|
249
|
+
```
|
|
324
250
|
|
|
325
|
-
|
|
326
|
-
|----------|--------|-------|
|
|
327
|
-
| **Vertex AI** | Gemini, Claude | GCP credentials ([docs](https://docs.dexto.ai/docs/guides/supported-llm-providers#google-cloud-vertex-ai)) |
|
|
328
|
-
| **AWS Bedrock** | Claude, Nova, Llama, Mistral | AWS credentials ([docs](https://docs.dexto.ai/docs/guides/supported-llm-providers#amazon-bedrock)) |
|
|
251
|
+
`--auto-approve` and `--no-elicitation` are required for MCP mode since it runs non-interactively.
|
|
329
252
|
|
|
330
|
-
|
|
253
|
+
**Transport: `http/sse`**
|
|
331
254
|
|
|
332
|
-
|
|
333
|
-
|----------|--------|-------|
|
|
334
|
-
| **OpenRouter** | 100+ models via `provider/model` format | API key |
|
|
335
|
-
| **Glama** | Multi-provider access via `provider/model` format | API key |
|
|
336
|
-
| **LiteLLM** | Self-hosted proxy for any provider | API key + baseURL |
|
|
255
|
+
`dexto --mode server` exposes your agent as an MCP server at `/mcp` for remote clients:
|
|
337
256
|
|
|
338
257
|
```bash
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
dexto -m gemini-2.5-pro
|
|
258
|
+
dexto --mode server --port 3001
|
|
259
|
+
ngrok http 3001 # Optional: expose publicly
|
|
342
260
|
```
|
|
343
261
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
You can also switch within the interactive CLI (/model) and in the web UI easily without needing to set up configuration.
|
|
347
|
-
|
|
348
|
-
See our [Configuration Guide](https://docs.dexto.ai/docs/category/agent-configuration-guide) and [Supported LLM Providers](https://docs.dexto.ai/docs/guides/supported-llm-providers) for complete setup instructions.
|
|
262
|
+
</details>
|
|
349
263
|
|
|
264
|
+
---
|
|
350
265
|
|
|
351
|
-
## Dexto
|
|
266
|
+
## Dexto Agents SDK
|
|
352
267
|
|
|
353
|
-
Build AI agents programmatically
|
|
268
|
+
Build AI agents programmatically. Everything the CLI does, your code can too.
|
|
354
269
|
|
|
355
270
|
```bash
|
|
356
271
|
npm install @dexto/core
|
|
357
272
|
```
|
|
358
273
|
|
|
359
|
-
```
|
|
274
|
+
```typescript
|
|
360
275
|
import { DextoAgent } from '@dexto/core';
|
|
361
276
|
|
|
362
|
-
// Create and start agent
|
|
363
277
|
const agent = new DextoAgent({
|
|
364
|
-
llm: {
|
|
365
|
-
provider: 'openai',
|
|
366
|
-
model: 'gpt-5-mini',
|
|
367
|
-
apiKey: process.env.OPENAI_API_KEY
|
|
368
|
-
}
|
|
278
|
+
llm: { provider: 'openai', model: 'gpt-5.2', apiKey: process.env.OPENAI_API_KEY }
|
|
369
279
|
});
|
|
370
280
|
await agent.start();
|
|
371
281
|
|
|
372
|
-
// Create a session for the conversation
|
|
373
282
|
const session = await agent.createSession();
|
|
374
|
-
|
|
375
|
-
// Use generate() for simple request/response
|
|
376
283
|
const response = await agent.generate('What is TypeScript?', session.id);
|
|
377
284
|
console.log(response.content);
|
|
378
285
|
|
|
379
|
-
//
|
|
380
|
-
await agent.
|
|
381
|
-
|
|
286
|
+
// Streaming
|
|
287
|
+
for await (const event of await agent.stream('Write a story', session.id)) {
|
|
288
|
+
if (event.name === 'llm:chunk') process.stdout.write(event.content);
|
|
289
|
+
}
|
|
382
290
|
|
|
383
|
-
// Multimodal
|
|
291
|
+
// Multimodal
|
|
384
292
|
await agent.generate([
|
|
385
293
|
{ type: 'text', text: 'Describe this image' },
|
|
386
294
|
{ type: 'image', image: base64Data, mimeType: 'image/png' }
|
|
387
295
|
], session.id);
|
|
388
296
|
|
|
389
|
-
//
|
|
390
|
-
|
|
391
|
-
if (event.name === 'llm:chunk') process.stdout.write(event.content);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
await agent.stop();
|
|
297
|
+
// Switch models mid-conversation
|
|
298
|
+
await agent.switchLLM({ model: 'claude-sonnet-4-5-20250929' });
|
|
395
299
|
```
|
|
396
300
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
---
|
|
400
|
-
|
|
401
|
-
## Advanced Usage
|
|
402
|
-
|
|
403
|
-
### Starting a Server
|
|
301
|
+
**Start a server programmatically:**
|
|
404
302
|
|
|
405
303
|
Start a Dexto server programmatically to expose REST and SSE streaming APIs to interact and manage your agent backend.
|
|
406
304
|
|
|
407
305
|
```typescript
|
|
408
306
|
import { DextoAgent } from '@dexto/core';
|
|
409
|
-
import { startHonoApiServer } from 'dexto';
|
|
410
|
-
|
|
411
|
-
// Create and configure agent
|
|
412
|
-
const agent = new DextoAgent({
|
|
413
|
-
llm: {
|
|
414
|
-
provider: 'openai',
|
|
415
|
-
model: 'gpt-5-mini',
|
|
416
|
-
apiKey: process.env.OPENAI_API_KEY
|
|
417
|
-
},
|
|
418
|
-
mcpServers: {
|
|
419
|
-
filesystem: {
|
|
420
|
-
type: 'stdio',
|
|
421
|
-
command: 'npx',
|
|
422
|
-
args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
});
|
|
307
|
+
import { loadAgentConfig, startHonoApiServer } from 'dexto';
|
|
426
308
|
|
|
427
|
-
|
|
309
|
+
const config = await loadAgentConfig('./agents/my-agent.yml');
|
|
310
|
+
const agent = new DextoAgent(config);
|
|
428
311
|
const { server } = await startHonoApiServer(agent, 3001);
|
|
429
|
-
|
|
430
|
-
console.log('Dexto server running at http://localhost:3001');
|
|
431
|
-
// Server provides REST API and SSE streaming endpoints
|
|
432
|
-
// POST /api/message - Send messages
|
|
433
|
-
// GET /api/sessions - List sessions
|
|
434
|
-
// See docs.dexto.ai/api/rest/ for all endpoints
|
|
312
|
+
// POST /api/message, GET /api/sessions, etc.
|
|
435
313
|
```
|
|
436
314
|
|
|
437
315
|
This starts an HTTP server with full REST and SSE APIs, enabling integration with web frontends, webhooks, and other services. See the [REST API Documentation](https://docs.dexto.ai/api/rest/) for available endpoints.
|
|
438
316
|
|
|
317
|
+
<details>
|
|
318
|
+
<summary><strong>Advanced SDK Usage</strong></summary>
|
|
319
|
+
|
|
439
320
|
### Session Management
|
|
440
321
|
|
|
441
322
|
Create and manage multiple conversation sessions with persistent storage.
|
|
@@ -450,7 +331,7 @@ await agent.generate('Hello, how can you help me?', session.id);
|
|
|
450
331
|
|
|
451
332
|
// List and manage sessions
|
|
452
333
|
const sessions = await agent.listSessions();
|
|
453
|
-
const
|
|
334
|
+
const history = await agent.getSessionHistory('user-123');
|
|
454
335
|
await agent.deleteSession('user-123');
|
|
455
336
|
|
|
456
337
|
// Search across conversations
|
|
@@ -466,21 +347,20 @@ Switch between models and providers dynamically.
|
|
|
466
347
|
const currentLLM = agent.getCurrentLLMConfig();
|
|
467
348
|
|
|
468
349
|
// Switch models (provider inferred automatically)
|
|
469
|
-
await agent.switchLLM({ model: 'gpt-5
|
|
350
|
+
await agent.switchLLM({ model: 'gpt-5.2' });
|
|
470
351
|
await agent.switchLLM({ model: 'claude-sonnet-4-5-20250929' });
|
|
471
352
|
|
|
472
|
-
// Switch model for a specific session
|
|
473
|
-
await agent.switchLLM({ model: 'gpt-5
|
|
353
|
+
// Switch model for a specific session
|
|
354
|
+
await agent.switchLLM({ model: 'gpt-5.2' }, 'session-123');
|
|
474
355
|
|
|
475
356
|
// Get supported providers and models
|
|
476
357
|
const providers = agent.getSupportedProviders();
|
|
477
358
|
const models = agent.getSupportedModels();
|
|
478
|
-
const openaiModels = agent.getSupportedModelsForProvider('openai');
|
|
479
359
|
```
|
|
480
360
|
|
|
481
361
|
### MCP Manager
|
|
482
362
|
|
|
483
|
-
For advanced MCP server management, use the MCPManager directly.
|
|
363
|
+
For advanced MCP server management, use the MCPManager directly.
|
|
484
364
|
|
|
485
365
|
```typescript
|
|
486
366
|
import { MCPManager } from '@dexto/core';
|
|
@@ -507,7 +387,7 @@ await manager.disconnectAll();
|
|
|
507
387
|
|
|
508
388
|
### Storage & Persistence
|
|
509
389
|
|
|
510
|
-
Configure storage backends for production
|
|
390
|
+
Configure storage backends for production.
|
|
511
391
|
|
|
512
392
|
```yaml
|
|
513
393
|
# agents/production-agent.yml
|
|
@@ -515,135 +395,222 @@ storage:
|
|
|
515
395
|
cache:
|
|
516
396
|
type: redis
|
|
517
397
|
url: $REDIS_URL
|
|
518
|
-
maxConnections: 100
|
|
519
398
|
database:
|
|
520
399
|
type: postgres
|
|
521
400
|
connectionString: $POSTGRES_CONNECTION_STRING
|
|
522
|
-
maxConnections: 25
|
|
523
401
|
|
|
524
402
|
sessions:
|
|
525
403
|
maxSessions: 1000
|
|
526
|
-
sessionTTL: 86400000
|
|
404
|
+
sessionTTL: 86400000 # 24 hours
|
|
527
405
|
```
|
|
528
406
|
|
|
529
407
|
**Supported Backends:**
|
|
530
|
-
- **Cache**: Redis, In-Memory
|
|
531
|
-
- **Database**: PostgreSQL, SQLite, In-Memory
|
|
408
|
+
- **Cache**: Redis, In-Memory
|
|
409
|
+
- **Database**: PostgreSQL, SQLite, In-Memory
|
|
410
|
+
|
|
411
|
+
See the [Storage Configuration guide](https://docs.dexto.ai/docs/guides/configuring-dexto/storage) for details.
|
|
412
|
+
|
|
413
|
+
</details>
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## Agent Registry
|
|
418
|
+
|
|
419
|
+
Pre-built agents for common use cases:
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
# List available agents
|
|
423
|
+
dexto list-agents
|
|
424
|
+
|
|
425
|
+
# Install and run
|
|
426
|
+
dexto install coding-agent podcast-agent
|
|
427
|
+
dexto --agent coding-agent
|
|
428
|
+
```
|
|
532
429
|
|
|
533
|
-
**
|
|
534
|
-
- **Development**: In-memory for quick testing
|
|
535
|
-
- **Production**: Redis + PostgreSQL for scale
|
|
536
|
-
- **Simple**: SQLite for single-instance persistence
|
|
430
|
+
**Available:** Coding, Podcast, Image Editor, Video (Sora), Database, GitHub, Triage (multi-agent), and more.
|
|
537
431
|
|
|
538
|
-
See the [
|
|
432
|
+
See the full [Agent Registry](https://docs.dexto.ai/docs/guides/agent-registry).
|
|
539
433
|
|
|
540
434
|
---
|
|
541
435
|
|
|
542
|
-
##
|
|
436
|
+
## Agent Configuration
|
|
437
|
+
|
|
438
|
+
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.
|
|
439
|
+
|
|
440
|
+
```yaml
|
|
441
|
+
# agents/production-agent.yml
|
|
442
|
+
llm:
|
|
443
|
+
provider: anthropic
|
|
444
|
+
model: claude-sonnet-4-5-20250929
|
|
445
|
+
apiKey: $ANTHROPIC_API_KEY
|
|
446
|
+
|
|
447
|
+
mcpServers:
|
|
448
|
+
filesystem:
|
|
449
|
+
type: stdio
|
|
450
|
+
command: npx
|
|
451
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
|
|
452
|
+
|
|
453
|
+
systemPrompt: |
|
|
454
|
+
You are a helpful assistant with filesystem access.
|
|
455
|
+
|
|
456
|
+
storage:
|
|
457
|
+
cache:
|
|
458
|
+
type: redis
|
|
459
|
+
url: $REDIS_URL
|
|
460
|
+
database:
|
|
461
|
+
type: postgres
|
|
462
|
+
connectionString: $POSTGRES_CONNECTION_STRING
|
|
463
|
+
|
|
464
|
+
toolConfirmation:
|
|
465
|
+
mode: manual
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
### LLM Providers
|
|
469
|
+
|
|
470
|
+
Switch between providers instantly—no code changes required.
|
|
471
|
+
|
|
472
|
+
#### Built-in Providers
|
|
473
|
+
|
|
474
|
+
| Provider | Models | Setup |
|
|
475
|
+
|----------|--------|-------|
|
|
476
|
+
| **OpenAI** | `gpt-5.2`, `gpt-5.2-pro`, `gpt-5.2-codex`, `o4-mini` | API key |
|
|
477
|
+
| **Anthropic** | `claude-sonnet-4-5-20250929`, `claude-opus-4-5-20250929`, extended thinking | API key |
|
|
478
|
+
| **Google** | `gemini-3-pro`, `gemini-2.5-pro`, `gemini-2.5-flash` | API key |
|
|
479
|
+
| **Groq** | `llama-4-scout`, `qwen-qwq`, `deepseek-r1-distill` | API key |
|
|
480
|
+
| **xAI** | `grok-4`, `grok-3`, `grok-3-fast` | API key |
|
|
481
|
+
| **Cohere** | `command-r-plus`, `command-r` | API key |
|
|
482
|
+
|
|
483
|
+
#### Local Models (Privacy-First)
|
|
484
|
+
|
|
485
|
+
| Provider | Models | Setup |
|
|
486
|
+
|----------|--------|-------|
|
|
487
|
+
| **Ollama** | Llama, Qwen, Mistral, DeepSeek, etc. | Local install |
|
|
488
|
+
| **node-llama-cpp** | Any GGUF model | Bundled (auto GPU detection: Metal, CUDA, Vulkan) |
|
|
489
|
+
|
|
490
|
+
#### Cloud Platforms
|
|
491
|
+
|
|
492
|
+
| Provider | Models | Setup |
|
|
493
|
+
|----------|--------|-------|
|
|
494
|
+
| **AWS Bedrock** | Claude, Llama, Mistral | AWS credentials |
|
|
495
|
+
| **Google Vertex AI** | Gemini, Claude | GCP credentials |
|
|
496
|
+
|
|
497
|
+
#### Gateway Providers
|
|
498
|
+
|
|
499
|
+
| Provider | Access | Setup |
|
|
500
|
+
|----------|--------|-------|
|
|
501
|
+
| **OpenRouter** | 100+ models from multiple providers | API key |
|
|
502
|
+
| **LiteLLM** | Unified API for any provider | Self-hosted or API key |
|
|
503
|
+
| **Glama** | Multi-provider gateway | API key |
|
|
504
|
+
|
|
505
|
+
```bash
|
|
506
|
+
# Switch models via CLI
|
|
507
|
+
dexto -m claude-sonnet-4-5-20250929
|
|
508
|
+
dexto -m gemini-2.5-pro
|
|
509
|
+
dexto -m llama-4-scout
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
Switch within interactive CLI (`/model`) or Web UI without config changes.
|
|
513
|
+
|
|
514
|
+
See the [Configuration Guide](https://docs.dexto.ai/docs/category/agent-configuration-guide).
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
## Demos & Examples
|
|
519
|
+
|
|
520
|
+
| Image Editor | MCP Store | Portable Agents |
|
|
521
|
+
|:---:|:---:|:---:|
|
|
522
|
+
| <img src=".github/assets/image_editor_demo.gif" alt="Image Editor" width="280"/> | <img src=".github/assets/mcp_store_demo.gif" alt="MCP Store" width="280"/> | <img src=".github/assets/portable_agent_demo.gif" alt="Portable Agents" width="280"/> |
|
|
523
|
+
| Face detection & annotation using OpenCV | Browse and add MCPs | Use agents in Cursor, Claude Code via MCP|
|
|
543
524
|
|
|
544
525
|
<details>
|
|
545
|
-
<summary>
|
|
526
|
+
<summary><strong>More Examples</strong></summary>
|
|
546
527
|
|
|
528
|
+
### Coding Agent
|
|
529
|
+
Build applications from natural language:
|
|
530
|
+
```bash
|
|
531
|
+
dexto --agent coding-agent
|
|
532
|
+
# "Create a snake game and open it in the browser"
|
|
547
533
|
```
|
|
548
|
-
|
|
534
|
+
<img src=".github/assets/coding_agent_demo.gif" alt="Coding Agent Demo" width="600"/>
|
|
549
535
|
|
|
550
|
-
|
|
536
|
+
### Podcast Agent
|
|
537
|
+
Generate multi-speaker audio content:
|
|
538
|
+
```bash
|
|
539
|
+
dexto --agent podcast-agent
|
|
540
|
+
```
|
|
541
|
+
<img src="https://github.com/user-attachments/assets/cfd59751-3daa-4ccd-97b2-1b2862c96af1" alt="Podcast Agent Demo" width="600"/>
|
|
551
542
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
543
|
+
### Multi-Agent Triage
|
|
544
|
+
Coordinate specialized agents:
|
|
545
|
+
```bash
|
|
546
|
+
dexto --agent triage-agent
|
|
547
|
+
```
|
|
548
|
+
<img src=".github/assets/triage_agent_demo.gif" alt="Triage Agent Demo" width="600">
|
|
557
549
|
|
|
558
|
-
|
|
559
|
-
|
|
550
|
+
### Memory System
|
|
551
|
+
Persistent context that shapes behavior:
|
|
552
|
+
<img src=".github/assets/memory_demo.gif" alt="Memory Demo" width="600">
|
|
560
553
|
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
dexto -r "<session-id>" "query" Resume with one-shot query
|
|
554
|
+
### Dynamic Forms
|
|
555
|
+
Agents generate forms for structured input:
|
|
556
|
+
<img src=".github/assets/user_form_demo.gif" alt="User Form Demo" width="600">
|
|
565
557
|
|
|
566
|
-
|
|
567
|
-
|
|
558
|
+
### Browser Automation
|
|
559
|
+
<a href="https://youtu.be/C-Z0aVbl4Ik">
|
|
560
|
+
<img src="https://github.com/user-attachments/assets/3f5be5e2-7a55-4093-a071-8c52f1a83ba3" alt="Amazon Shopping Demo" width="600"/>
|
|
561
|
+
</a>
|
|
568
562
|
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
dexto -a agents/custom.yml Short form with relative path
|
|
563
|
+
### MCP Playground
|
|
564
|
+
Test tools before deploying:
|
|
565
|
+
<img src=".github/assets/playground_demo.gif" alt="Playground Demo" width="600">
|
|
573
566
|
|
|
574
|
-
|
|
575
|
-
dexto --mode server Run as API server
|
|
576
|
-
dexto --mode mcp Run as MCP server
|
|
567
|
+
</details>
|
|
577
568
|
|
|
578
|
-
|
|
579
|
-
See examples/discord-bot/ Run as Discord bot
|
|
580
|
-
See examples/telegram-bot/ Run as Telegram bot
|
|
569
|
+
---
|
|
581
570
|
|
|
582
|
-
|
|
583
|
-
|
|
571
|
+
<details>
|
|
572
|
+
<summary><strong>CLI Reference</strong></summary>
|
|
584
573
|
|
|
585
|
-
|
|
574
|
+
```text
|
|
575
|
+
Usage: dexto [options] [command] [prompt...]
|
|
576
|
+
|
|
577
|
+
Basic Usage:
|
|
578
|
+
dexto Start web UI (default)
|
|
579
|
+
dexto "query" Run one-shot query
|
|
580
|
+
dexto --mode cli Interactive CLI
|
|
586
581
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
CLI
|
|
582
|
+
Session Management:
|
|
583
|
+
dexto -c Continue last conversation
|
|
584
|
+
dexto -r <id> Resume specific session
|
|
591
585
|
|
|
592
586
|
Options:
|
|
593
|
-
-
|
|
594
|
-
-
|
|
595
|
-
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
--
|
|
599
|
-
--no-interactive Disable interactive prompts and API key
|
|
600
|
-
setup
|
|
601
|
-
--skip-setup Skip global setup validation (useful for MCP
|
|
602
|
-
mode, automation)
|
|
603
|
-
-m, --model <model> Specify the LLM model to use
|
|
604
|
-
--auto-approve Always approve tool executions without
|
|
605
|
-
confirmation prompts
|
|
606
|
-
-c, --continue Continue most recent conversation
|
|
607
|
-
-r, --resume <sessionId> Resume session by ID
|
|
608
|
-
--mode <mode> The application in which dexto should talk
|
|
609
|
-
to you - web | cli | server | mcp
|
|
610
|
-
(default: "web")
|
|
611
|
-
--port <port> port for the server (default: 3000 for web,
|
|
612
|
-
3001 for server mode)
|
|
613
|
-
--no-auto-install Disable automatic installation of missing
|
|
614
|
-
agents from registry
|
|
615
|
-
-h, --help display help for command
|
|
587
|
+
-a, --agent <path> Agent config file or ID
|
|
588
|
+
-m, --model <model> LLM model to use
|
|
589
|
+
--auto-approve Skip tool confirmations
|
|
590
|
+
--no-elicitation Disable elicitation prompts
|
|
591
|
+
--mode <mode> web | cli | server | mcp
|
|
592
|
+
--port <port> Server port
|
|
616
593
|
|
|
617
594
|
Commands:
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
files/directories
|
|
624
|
-
uninstall [options] [agents...] Uninstall agents from the local installation
|
|
625
|
-
list-agents [options] List available and installed agents
|
|
626
|
-
which <agent> Show the path to an agent
|
|
627
|
-
session Manage chat sessions
|
|
628
|
-
search [options] <query> Search session history
|
|
629
|
-
mcp [options] Start Dexto as an MCP server. Use
|
|
630
|
-
--group-servers to aggregate and re-expose
|
|
631
|
-
tools from configured MCP servers.
|
|
632
|
-
In the future, this command will expose the
|
|
633
|
-
agent as an MCP server by default.
|
|
595
|
+
setup Configure global preferences
|
|
596
|
+
install <agents...> Install agents from registry
|
|
597
|
+
list-agents List available agents
|
|
598
|
+
session list|history Manage sessions
|
|
599
|
+
search <query> Search conversation history
|
|
634
600
|
```
|
|
635
|
-
</details>
|
|
636
601
|
|
|
637
|
-
|
|
602
|
+
Full reference: `dexto --help`
|
|
603
|
+
|
|
604
|
+
</details>
|
|
638
605
|
|
|
639
606
|
---
|
|
640
607
|
|
|
641
|
-
##
|
|
608
|
+
## Documentation
|
|
642
609
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
610
|
+
- **[Quick Start](https://docs.dexto.ai/docs/getting-started/intro/)** – Get running in minutes
|
|
611
|
+
- **[Configuration Guide](https://docs.dexto.ai/docs/category/guides/)** – Agents, LLMs, tools
|
|
612
|
+
- **[SDK Reference](https://docs.dexto.ai/api/sdk/dexto-agent)** – Programmatic usage
|
|
613
|
+
- **[REST API](https://docs.dexto.ai/api/rest/)** – HTTP endpoints
|
|
647
614
|
|
|
648
615
|
---
|
|
649
616
|
|
|
@@ -659,38 +626,34 @@ We collect anonymous usage data (no personal/sensitive info) to help improve Dex
|
|
|
659
626
|
|
|
660
627
|
To opt-out:
|
|
661
628
|
|
|
662
|
-
Set env variable `DEXTO_ANALYTICS_DISABLED=1`
|
|
629
|
+
Set env variable `DEXTO_ANALYTICS_DISABLED=1`
|
|
663
630
|
|
|
664
|
-
|
|
631
|
+
---
|
|
665
632
|
|
|
666
|
-
|
|
633
|
+
## Contributing
|
|
667
634
|
|
|
668
|
-
|
|
635
|
+
See [CONTRIBUTING.md](https://github.com/truffle-ai/dexto/blob/HEAD/CONTRIBUTING.md).
|
|
669
636
|
|
|
670
|
-
|
|
671
|
-
Join our Discord to share projects, ask questions, or just say hi!
|
|
637
|
+
---
|
|
672
638
|
|
|
673
|
-
|
|
639
|
+
## Community
|
|
674
640
|
|
|
675
|
-
|
|
641
|
+
Built by [Truffle AI](https://www.trytruffle.ai). Join [Discord](https://discord.gg/GFzWFAAZcm) for support.
|
|
676
642
|
|
|
677
|
-
|
|
643
|
+
If you find Dexto useful, please give us a ⭐ on GitHub—it helps a lot!
|
|
678
644
|
|
|
645
|
+
[](https://x.com/intent/user?screen_name=dexto_ai)
|
|
679
646
|
[](https://x.com/intent/user?screen_name=Road_Kill11)
|
|
680
647
|
[](https://x.com/intent/user?screen_name=shaun5k_)
|
|
681
648
|
|
|
682
|
-
</div>
|
|
683
|
-
|
|
684
649
|
---
|
|
685
650
|
|
|
686
651
|
## Contributors
|
|
687
652
|
|
|
688
|
-
Thanks to all these amazing people for contributing to Dexto!
|
|
689
|
-
|
|
690
653
|
[](https://github.com/truffle-ai/dexto/graphs/contributors)
|
|
691
654
|
|
|
692
655
|
---
|
|
693
656
|
|
|
694
657
|
## License
|
|
695
658
|
|
|
696
|
-
Elastic License 2.0.
|
|
659
|
+
Elastic License 2.0. See [LICENSE](https://github.com/truffle-ai/dexto/blob/HEAD/LICENSE).
|