title: CloudSlash - DEVI Agent Capabilities Reference description: DEVI is not a chatbot. It has 14 MCP tools that can create files, compile plugins, save policies, and trigger remediations: all with your confirmation first....
DEVI Agent Capabilities¶
DEVI is not a chatbot. It has 14 MCP tools that can create files, compile plugins, save policies, and trigger remediations: all with your confirmation first.
How to Access DEVI¶
DEVI runs inside the CloudSlash daemon and is accessed via:
- Web Dashboard → the AI chat panel at
http://localhost:7891(or your deployed URL) - TUI → the DEVI tab in the terminal dashboard
- API →
POST /api/v1/ai/chaton the daemon
DEVI is not a CLI command. It is an interactive agent that responds to natural language through the dashboard interface.
Architecture¶
graph TD
User[User via Web Dashboard / TUI] -->|natural language| API[POST /api/v1/ai/chat]
API --> Loop[ReAct Agent Loop]
Loop -->|tool calls| MCP[MCP Server: 14 Tools]
MCP -->|read| Graph[Universal Graph]
MCP -->|write| FS[File System: sandboxed]
MCP -->|event| SAU[s.a.u Quarantine]
MCP -->|predict| Oracle[Oracle HMM Engine]
MCP -->|attribute| Rosetta[Rosetta Provenance]
Loop -->|LLM| Provider[BYOK: OpenAI / Anthropic / Gemini / Ollama]
MCP Tools¶
Available (14 Total)
Analysis Tools¶
No Confirmation Required
| Tool | Description |
|---|---|
query_graph |
Query the Universal Graph for specific resources by provider, type, or waste flag |
get_financial_ledger |
Retrieve total waste count and projected monthly savings |
get_taxonomy_schema |
Get available CEL variables and types for policy authoring |
simulate_policy |
Dry-run a CEL policy against the live graph: shows match count and sample CRNs |
get_resource_provenance |
Trace a resource back to the Terraform code + git commit that created it (Rosetta Engine) |
run_oracle_simulation |
Predict Spot Instance interruption probability via HMM Viterbi (Oracle Engine) |
force_state_sync |
Trigger immediate reconciliation scan of live cloud state |
Action Tools¶
Human Confirmation Required
| Tool | Description | Confirmation |
|---|---|---|
request_quarantine |
Submit a resource for s.a.u quarantine: blocks until human approves | s.a.u HITL |
update_configuration |
Hot-reload CloudSlash config (AI model, cloud settings, pricing) | Via daemon |
install_plugin |
Download + verify + hot-load a plugin from the community registry | s.a.u checkpoint |
generate_plugin |
LLM generates a complete plugin from a description, saves to disk | No |
build_plugin |
Compiles a generated plugin via go build |
Always asks user |
save_policy |
Writes a CEL policy to a .cel.yaml file |
Always asks user |
write_file |
Creates any file within .cloudslash/ directories (sandboxed) |
Always asks user |
Usage Examples¶
All interactions happen through the Web Dashboard chat panel or the TUI DEVI tab.
Generate a Plugin¶
You: Create a plugin that scans Hetzner Cloud servers and floating IPs
DEVI: I'll create a Hetzner Cloud scanner plugin for you.
[Calling generate_plugin with name="hetzner", description="Scan servers and floating IPs"]
✅ Plugin generated and saved:
• Path: ~/.cloudslash/plugins/src/cloudslash-plugin-hetzner/main.go
• Source: LLM-generated with Hetzner Go SDK
• Checksum: a1b2c3d4e5f6...
Would you like me to build it?
You: Yes
DEVI: [Calling build_plugin with name="hetzner"]
✅ Built successfully:
• Binary: ~/.cloudslash/plugins/cloudslash-plugin-hetzner
• Platform: darwin/arm64
Save a Policy¶
You: Block any instance that costs more than $500/month
DEVI: Let me test that policy first.
[Calling simulate_policy with condition="cost > 500.0", action="block"]
Results:
• Matches: 3 resources
• Sample CRNs: crn:devi:aws:us-east-1:...:instance:i-0abc, ...
This would block 3 resources. Shall I save this policy?
You: Save it
DEVI: [Calling save_policy with name="block-expensive-instances",
condition="cost > 500.0", action="block"]
✅ Policy saved to .cloudslash/policies/block-expensive-instances.cel.yaml
Write a Report¶
You: Generate a monthly waste report for my team
DEVI: [Calling query_graph to get all waste]
[Calling get_financial_ledger for totals]
I'll create a markdown report. May I write it to .cloudslash/reports/?
You: Yes
DEVI: [Calling write_file with path="reports/2026-05-waste-report.md"]
✅ Report saved to .cloudslash/reports/2026-05-waste-report.md
Security Model¶
Sandbox Enforcement¶
The write_file tool can only write to paths containing .cloudslash/:
- ✅
~/.cloudslash/reports/summary.md - ✅
$CWD/.cloudslash/policies/custom.cel.yaml - ❌
/etc/passwd: BLOCKED - ❌
~/important-file.txt: BLOCKED
Audit Logging¶
Every file operation is recorded in the daemon's audit ledger (visible in the s.a.u tab of the dashboard):
[2026-05-02 12:00:01] OK [DEVI] Generated plugin 'hetzner' → ~/.cloudslash/plugins/src/... (from_llm=true)
[2026-05-02 12:00:05] OK [DEVI] Built plugin 'hetzner' → ~/.cloudslash/plugins/cloudslash-plugin-hetzner
[2026-05-02 12:01:30] OK [DEVI] Saved policy 'block-expensive' → .cloudslash/policies/block-expensive.cel.yaml
[2026-05-02 12:02:00] OK [DEVI] Wrote file .cloudslash/reports/waste-report.md (2048 bytes)
DEVI Never Auto-Executes¶
DEVI's system prompt enforces Rule 5:
"For ANY tool marked REQUIRES USER CONFIRMATION, you MUST describe what you're about to do and ASK the user for permission BEFORE calling the tool. NEVER auto-execute these."
BYOK¶
Bring Your Own Key
DEVI works with any LLM provider. Configure via environment variables or through the dashboard settings:
| Provider | Environment Variable | Local? |
|---|---|---|
| Anthropic (Claude) | ANTHROPIC_API_KEY |
No |
| OpenAI (GPT-4) | OPENAI_API_KEY |
No |
| Google (Gemini) | GEMINI_API_KEY |
No |
| Ollama (any model) | Auto-detected | Yes |
When using Ollama, all inference runs on your machine: no data leaves your network.