Agent Tools
Built-in tools available to the Foxl desktop agent
The Foxl desktop agent comes with ~20 built-in tools organized into profiles, plus a few capability-gated tools (like generate_image) that register automatically when their credentials are available. The agent selects which tools to load based on the task complexity.
Tools are only available in the desktop app. The web app (app.foxl.ai) is chat-only.
Browser
| Tool | Description |
|---|---|
| browser | Playwright-based web automation - navigate, click, type, screenshot, extract content |
| browser_extension | Control your real Chrome tabs via the Chrome extension |
Code & Files
| Tool | Description |
|---|---|
| file_read | Read files from your filesystem |
| code_search | Search across your codebase with ripgrep (regex, file type filters) |
| view_image | View and analyze images |
Shell & System
| Tool | Description |
|---|---|
| exec | Run shell commands (bash, zsh, etc.) - covers git, npm, curl, and arbitrary shell pipelines |
| process | List, monitor, and kill running processes |
| terminal | Persistent terminal session for stateful shell workflows |
Web
| Tool | Description |
|---|---|
| web_fetch | Fetch web pages and API endpoints |
Memory
| Tool | Description |
|---|---|
| memory_save | Save key-value pairs to the SQLite memory database |
| memory_recall | Search and retrieve from the memory database |
| workspace_memory_save | Save content to workspace markdown files (USER.md, MEMORY.md) |
| workspace_memory_search | Search across all workspace markdown files |
| workspace_memory_read | Read a specific workspace file |
| workspace_memory_edit | Edit sections within workspace files |
Scheduling
| Tool | Description |
|---|---|
| schedule | Create, list, update, delete, and trigger schedules (cron, heartbeat, webhook) |
Agent
| Tool | Description |
|---|---|
| session_status | Get current date/time, timezone, and session info |
| sessions_spawn | Spawn an autonomous sub-agent for a parallel task (max 5 concurrent) |
| sessions_status | Check sub-agent progress |
| sessions_stop | Stop a running sub-agent |
Integrations
Integration tools are only available after you connect the corresponding account in Settings - Integrations.
| Tool | Actions | Description |
|---|---|---|
| outlook | 21 actions | Email (inbox, read, send, reply, forward, search, folders, drafts, attachments, contacts, move, categories, update), Calendar (view, meeting, availability, room booking, search, shared list), To-Do (lists, tasks, checklist) via Microsoft Graph API |
| slack | 16 actions | search_messages, whoami, get_recent_messages, channels_list, conversations_history/replies/add_message/open/members, check_replies_batch, users_lookup/profile_get, attachment_get_data, reactions_add/remove, file_upload |
These tools use OAuth user tokens - they act as you, not as a bot. Connect via Settings - Integrations - Connect.
Channels
| Tool | Description |
|---|---|
| channel_send | Send messages to connected channels (Discord, Slack, Telegram, etc.) |
Media
| Tool | Description |
|---|---|
| generate_image | Generate or edit PNG images with gpt-image-2 through your ChatGPT Plus/Pro subscription. Pass inputImages paths to edit or compose from existing images; omit for pure text-to-image. Auto-saved under data/workspace/generated/generated-<YYYY-MM-DD>-<slug>.png. |
generate_image uses your ChatGPT subscription, not an OpenAI API key. The tool only registers when an OAuth credential file is found at ~/.codex/auth.json, ~/.chatgpt-local/auth.json, or the path set by CODEX_HOME / CHATGPT_LOCAL_HOME. No additional billing outside your existing $20/month plan.
Image editing and composition
Pass one or more existing image paths as inputImages to switch from text-to-image into edit / compose mode. When you drag images into the chat, Foxl auto-persists them to data/workspace/attachments/ and injects the absolute paths into your message, so the agent can reference them without base64 round-tripping through the model's tool-call args.
Examples the agent can drive end-to-end:
| Prompt | What the agent does |
|---|---|
| "이 사진 만화풍으로 바꿔줘" (attach a photo) | Calls generate_image({ prompt: "convert to watercolor anime style", inputImages: ["<path>"] }) |
| "이 두 이미지 합쳐서 하나로" (attach 2+ photos) | Calls generate_image({ prompt: "compose both subjects into one scene", inputImages: ["<a>", "<b>"] }) |
| "blog hero: a cozy cafe at dusk, 1536x1024" | Calls generate_image({ prompt: "...", size: "1536x1024" }) |
Up to 10 input images per call. Output PNG lives at a date-stamped filename with a slug derived from the prompt, in a generated/ subfolder to keep your workspace root clean.
Tool Profiles
Foxl uses tool profiles to control how many tools are loaded, saving tokens in the system prompt:
| Profile | Tools | Token Cost |
|---|---|---|
| Minimal | ~8 tools (memory + workspace) | ~1,600 tokens |
| Default | ~12 tools (+ file, exec, channels, media) | ~2,400 tokens |
| Standard | ~13 tools (+ web, code search) | ~2,600 tokens |
| Full | ~19 tools (all including browser, schedule, agents, media) | ~3,800 tokens |
The agent runs in Full profile by default. You can switch profiles in Settings to save tokens on simpler tasks. generate_image lives in the media category and is included in Default, Standard, and Full profiles; Minimal omits it to preserve its token budget.
Git operations route through exec (e.g. exec git status, exec git push). There is no dedicated git tool - piping and custom flags work better from exec anyway, and the exec approval path still gates destructive operations.
Skills
Beyond built-in tools, Foxl supports skills - installable capability packages that extend what the agent can do. See Skills for the full catalog.