AeroAgent

AeroAgent is AeroFTP's AI-powered assistant for natural language file management, code editing, and server operations. It integrates with 19 AI providers, exposes 47 built-in tools, and operates across all 22 file transfer protocols through a unified backend.

Welcome Screen

When you first open AeroAgent (via the AeroTools panel or Ctrl+Shift+A), the welcome screen presents a 3x3 capability grid showing what AeroAgent can do.

AeroAgent welcome screen with capability grid

The nine capabilities displayed are:

CapabilityDescription
FilesCreate, move, rename, copy, and delete files locally or remotely
CodeRead, write, edit, and diff source code files
SearchFind files by name, search content with regex, locate duplicates
ArchivesCompress and extract ZIP, 7z, TAR archives
ShellExecute shell commands with output capture
VaultInspect AeroVault containers and compute file hashes
SyncStart, stop, and monitor AeroSync operations
ContextAuto-detect project type and inject relevant context
VisionAnalyze images dragged into chat or pasted from clipboard

Below the grid, quick prompts provide one-click starting points. These are context-aware: when connected to a server, prompts reference remote operations; in AeroFile (local-only) mode, prompts focus on local file management.

If no AI provider API key is configured, a setup banner guides you to Settings > AI > Providers.

Chat Interface

The main chat interface provides a streaming markdown conversation with the AI, including tool execution results, code blocks with action buttons, and thinking visualization.

AeroAgent chat with tool execution and code blocks

Streaming Markdown

Messages render incrementally as the AI generates them. The renderer uses a dual-segment architecture:

  • FinalizedSegment (React.memo) — completed paragraphs, code blocks, and lists that never re-render
  • StreamingSegment — the currently generating text that updates in real-time

This approach provides smooth streaming without the performance penalty of re-rendering the entire message on every token.

Code Block Actions

Every code block in a response includes action buttons:

  • Copy — copy the code to the clipboard
  • Apply — write the code to a file (prompts for path if not obvious from context)
  • Diff — show a side-by-side diff against the current file contents
  • Run — execute the code block as a shell command (with approval)

Thinking Visualization

When using providers that support reasoning (Anthropic extended thinking, OpenAI o3 reasoning, DeepSeek-R1), a collapsible ThinkingBlock displays the model's internal reasoning with token count and duration metrics.

Tool Approval

When AeroAgent calls a tool rated as medium or high danger, an approval dialog appears showing the tool name, parameters, and danger level.

Tool approval dialog

For batch tool calls, a BatchToolApproval dialog presents all pending tools at once, allowing you to approve or reject each individually or approve all.

AI Settings

Configure providers, models, and behavior in the AI Settings panel, accessible from Settings > AI or the gear icon in the AeroAgent header.

AI Settings panel with provider marketplace

The settings panel includes seven tabs:

  1. Provider — select and configure AI providers, browse the Provider Marketplace
  2. Model — choose the model, set temperature, max tokens, and thinking budget
  3. Tools — enable/disable individual tools, set default approval behavior
  4. System Prompt — edit the base system prompt with a toggle and textarea
  5. Macros — create and manage tool chain macros with {{variable}} templates
  6. Plugins — browse, install, and manage plugins from the GitHub-based registry
  7. History — configure retention policies, search chat history, view usage stats

Supported AI Providers

ProviderStreamingVisionTool CallingThinking
OpenAISSEGPT-4oNativeo3 reasoning
AnthropicSSEClaude 3.5+NativeExtended thinking
Google GeminiSSEGemini 2.0Native--
xAI (Grok)SSEGrok VisionNative--
OpenRouterSSEVariesNativeVaries
Ollama (local)NDJSONllavaNative--
MistralSSEPixtralNative--
GroqSSE--Native--
PerplexitySSE--Text--
CohereSSE--Native--
Together AISSE--Native--
AI21 LabsSSE--Native--
CerebrasSSE--Native--
SambaNovaSSE--Native--
Fireworks AISSE--Native--
KimiSSE--Native--
QwenSSE--Native--
DeepSeekSSE--NativeDeepSeek-R1
Custom (OpenAI-compatible)SSEConfigurableNative/TextConfigurable

Configure providers in Settings > AI > Providers, or browse the Provider Marketplace to discover and add new ones. The marketplace presents providers in a searchable grid organized by category with feature badges and pricing tiers.

Ollama Integration

For local AI models, AeroAgent includes Ollama-specific features:

  • Model auto-detection via GET /api/tags with a "Detect" button in AI Settings
  • Pull model from UI with NDJSON streaming progress bar
  • GPU monitoring via ollama_list_running showing VRAM usage
  • 8 model family profiles with detectOllamaModelFamily() for optimized prompting

Tool Reference (47 Tools)

Remote Operations (9 tools)

ToolSafetyDescription
remote_listsafeList files in remote directory
remote_readsafeRead remote text file (max 5 KB)
remote_infosafeGet file/directory metadata
remote_searchsafeSearch files by glob pattern
remote_downloadmediumDownload single file
remote_uploadmediumUpload single file
remote_mkdirmediumCreate remote directory
remote_renamemediumRename/move remote file
remote_deletehighDelete remote file or directory

Local File Operations (16 tools)

ToolSafetyDescription
local_listmediumList local files
local_readmediumRead local text file (max 5 KB)
local_writemediumWrite text to local file
local_mkdirmediumCreate local directory
local_renamemediumRename/move local file
local_editmediumFind and replace in local file
local_move_filesmediumBatch move files to destination
local_batch_renamemediumBatch rename (regex/prefix/suffix/sequential)
local_copy_filesmediumBatch copy files
local_trashmediumMove files to system recycle bin
local_file_infosafeGet detailed file properties
local_disk_usagesafeCalculate directory size recursively
local_find_duplicatessafeFind duplicate files via hash
local_searchmediumSearch local files by pattern
local_deletehighDelete local file or directory
remote_editmediumFind and replace in remote file (download, edit, upload)

Content Inspection (7 tools)

ToolSafetyDescription
local_grepmediumRegex search across directory files
local_headmediumRead first N lines (max 500)
local_tailmediumRead last N lines (max 500)
local_stat_batchmediumMetadata for up to 100 paths
local_diffsafeUnified diff between two files
local_treemediumRecursive directory tree (max depth 10)
preview_editsafePreview find/replace without applying

Batch Transfer, Archives, Context and Crypto

ToolSafetyDescription
upload_filesmediumUpload multiple local files to remote
download_filesmediumDownload multiple remote files to local
archive_compressmediumCreate ZIP/7z/TAR archives (optional AES-256 password)
archive_decompressmediumExtract archives with password support
rag_indexmediumIndex directory files with previews (max 200 files)
rag_searchmediumFull-text search across indexed files
hash_filesafeCompute hash (MD5, SHA-1, SHA-256, SHA-512, BLAKE3)
vault_peeksafeInspect AeroVault header without password

Application Control, Clipboard and Memory

ToolSafetyDescription
set_themesafeChange app theme (light/dark/tokyo/cyber)
app_infosafeGet app state, connection info, version
sync_controlmediumStart/stop/status AeroSync service
clipboard_readmediumRead text from system clipboard
clipboard_writemediumWrite text to system clipboard
agent_memory_writemediumSave persistent note across sessions

Server Management (2 tools)

ToolSafetyDescription
server_list_savedsafeList saved server profiles (credentials never exposed)
server_exechighExecute operation on any saved server

server_exec is a uniquely powerful tool. AeroAgent can autonomously connect to any saved server and perform 10 operations (ls, cat, get, put, mkdir, rm, mv, stat, find, df) without credentials ever being exposed to the AI model. Passwords are resolved from the encrypted vault entirely in Rust. The AI sees only server names and results.

Shell Execution (1 tool)

ToolSafetyDescription
shell_executehighExecute shell command (30s timeout, 1 MB output limit, pattern denylist)

Safety System

Three Danger Levels

LevelBehaviorCount
safeAuto-execute without user confirmation14 tools
mediumShow approval modal, user must confirm27 tools
highExplicit confirmation with danger warning6 tools

Path Validation

All file operations validate against null bytes, .. traversal, symlink resolution, 4096-character path limit, and a system path denylist (/proc, /sys, /dev, /boot, /root, /etc/shadow, ~/.ssh, ~/.gnupg, ~/.aws, /run/secrets).

Shell Command Denylist

shell_execute blocks dangerous patterns: rm -rf /, mkfs, dd of=/dev/, shutdown, reboot, fork bombs, chmod 777 /, sudo, eval, curl | sh, and 20+ additional patterns. Shell meta-characters (|, ;, `, $, &) are also blocked.

Execution Pipeline

DAG-Based Parallel Execution

When the AI requests multiple tool calls, AeroAgent builds a Directed Acyclic Graph based on path dependencies. Read-only tools on different paths execute in parallel; mutating tools on shared paths are serialized via topological sort (Kahn's algorithm).

Multi-Step Autonomous Execution

AeroAgent supports multi-step workflows: up to 10 steps by default, 50 in Extreme Mode. After each step, the AI decides whether to respond or call more tools. A circuit breaker halts execution on consecutive errors.

Duplicate Call Prevention

An executedToolSignaturesRef deduplication mechanism prevents models (particularly Llama and other open-source models) from repeating identical tool calls within a multi-step execution run.

Error Recovery

8 strategies with automatic analysis: not-found suggests rag_search, permission-denied suggests listing parent, rate limits (429/503) retry with exponential backoff, timeouts suggest smaller scope, connection loss prompts reconnection, and large files suggest chunked approaches.

Context Intelligence

AeroAgent auto-detects project type from 10 marker files (Cargo.toml, package.json, pom.xml, requirements.txt, go.mod, Gemfile, composer.json, *.csproj, CMakeLists.txt, build.gradle) and injects relevant context. The system prompt is dynamically composed from:

  1. Base personality — AeroAgent identity, tone, protocol expertise
  2. Provider profile — per-provider optimization (e.g., Anthropic cache hints, OpenAI structured outputs)
  3. Connection context — AeroCloud vs Server vs AeroFile mode, current host/port/user
  4. Tool definitions — all 47 tools with schemas
  5. Project context — detected language, framework, file dependency graph
  6. RAG results — indexed file previews and search hits
  7. Agent memory — persistent notes from previous sessions (.aeroagent file)

A sliding-window token budget (70% of provider max) with automatic summarization manages context size. The TokenBudgetIndicator component shows real-time token usage with three budget modes.

Plugin System

Extend AeroAgent with custom tools via JSON manifests and shell scripts. Plugins are discovered from a GitHub-based registry, verified with SHA-256 integrity at install and before each execution, and support event-driven hooks (file:created, transfer:complete, sync:complete). Manage plugins in AI Settings > Plugins.

The Plugin Browser UI provides three tabs:

  • Installed — manage currently installed plugins
  • Browse — search the registry for new plugins
  • Updates — check for and apply plugin updates

Macro System

Chain multiple tools into reusable workflows with {{variable}} templates, single-pass variable expansion (injection-safe), and a maximum of 20 steps. Configure macros in AI Settings > Macros.

Chat Features

  • Streaming markdown with finalized/streaming segments and syntax highlighting
  • Code block actions — Copy, Apply, Diff, Run buttons on every code block
  • Thinking visualization with token count and duration
  • Prompt templates — 15 built-in, activated with / prefix
  • Chat search (Ctrl+F) with role filter and keyboard navigation
  • Conversation branching — fork, switch, delete alternative approaches
  • Chat history in SQLite with FTS5 full-text search and retention policies (7/30/90/180/365/unlimited days)
  • Export to Markdown or JSON
  • Cost tracking per message with monthly budget limits per provider
  • Vision/multimodal — drag images into chat or paste from clipboard
  • Drag and drop — drag files from the file manager into the chat area for analysis
  • Context menu integration — right-click files and select "Ask AeroAgent" to start a conversation about them

Extreme Mode

Available only in Cyber theme. Auto-approves all tool calls for fully autonomous execution with a 50-step limit (vs 10 default). A circuit breaker on consecutive errors provides a safety net.

Warning: Extreme Mode auto-approves all tool calls including destructive operations like remote_delete, local_delete, shell_execute, and server_exec. Use only when you fully trust the AI model.

Architecture

AeroAgent operates in three modes through a shared trait abstraction layer (ai_core/):

TraitPurpose
EventSinkAbstract event emission (Tauri app.emit() vs CLI stdout)
CredentialProviderVault-based credential access without exposing passwords
RemoteBackendProtocol-agnostic remote operations (22 protocols)

This enables GUI mode (Tauri events), CLI mode (stdout/stderr), and Orchestration mode (JSON-RPC 2.0 over stdin/stdout). MCP compatibility maps naturally: tools become MCP Tools, RAG/vault become Resources, macros/templates become Prompts, and multi-step execution becomes Sampling.

Keyboard Shortcuts

ShortcutAction
Ctrl+Shift+AAsk AeroAgent from code editor
Ctrl+LFocus chat input
Shift+NNew conversation
Ctrl+FSearch in chat
Shift+EExport conversation