> ## Documentation Index
> Fetch the complete documentation index at: https://docs.factory.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Factory Release 1.10

> MCP Manager, custom completion sounds, and Droid hooks

Factory 1.10 introduces a visual MCP Manager for extending Droid with external tools, customizable completion sounds to personalize your workflow, and Droid hooks—an experimental feature that gives you programmatic control over Droid's behavior.

<iframe className="w-full aspect-video rounded-xl" src="https://youtube.com/embed/yBEbnA5j7iU" title="Factory 1.10 Release" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

## MCP Manager

Connect Droid to external services with an intuitive visual interface. The MCP Manager lets you browse, authenticate, and manage Model Context Protocol servers without editing config files.

**How it works**

Type `/mcp` to open the interactive MCP Manager. Browse connected and available servers, view the tools each server provides, and authenticate with OAuth for services like Notion, Linear, and Stripe.

For servers in our registry, Droid automatically helps you add OAuth credentials, making setup a breeze. For servers not in the registry, you can still add them manually using the same interface you'd use in any other MCP-compatible app.

**What you can do**

* Browse all connected and disconnected MCP servers in one place
* Authenticate HTTP servers with OAuth credentials
* View the complete list of tools provided by each server
* Add new servers using the interactive form or command
* Enable, disable, or remove servers without touching config files

<Note>Learn more about [MCP configuration](/cli/configuration/mcp).</Note>

## Custom completion sounds

Get notified your way when Droid finishes a task. Choose from built-in sounds, use a terminal bell, or load your own custom audio file.

**How it works**

Navigate to Settings and find the "Completion sound" option. Select from:

* **Off** - No sound
* **Terminal Bell** - Standard system bell
* **FX-OK01** - A sound generated by Droid
* **FX-ACK01** - Produced by The Chainsmokers (because we won't let you down)
* **Custom Sound** - Upload your own audio file

You can also control when sounds play with the "Sound focus mode" setting:

* **Always** - Play sound regardless of window focus
* **When focused** - Only play when Droid window is active
* **When unfocused** - Only play when you're working elsewhere

Perfect for staying in flow while multitasking or working across multiple windows.

## Droid hooks (Experimental)

Run custom shell commands at key points in Droid's lifecycle. Hooks give you deterministic control over Droid's behavior, ensuring certain actions always happen rather than relying on the LLM to remember.

<Warning>
  Hooks are an experimental feature. They execute arbitrary shell commands on your system automatically. Always review hook implementations before registering them, as hooks run with your current environment's credentials.
</Warning>

**How it works**

1. Run the `/hooks` command to open the Hooks Manager
2. Navigate to a hook event like `PreToolUse`
3. Add a matcher to specify which tools trigger your hook (e.g., `Bash` for shell commands)
4. Add your hook command (e.g., a script that validates bash commands)
5. Save to User or Project settings
6. Your hook runs automatically whenever conditions match

**Use cases**

* **Automatic formatting** - Run `prettier` on TypeScript files or `gofmt` on Go files after every edit
* **Custom permissions** - Block modifications to production files or sensitive directories
* **Logging** - Track and count all executed commands for compliance or debugging
* **Feedback** - Provide automated feedback when Droid produces code that doesn't follow your conventions
* **Notifications** - Customize how you get notified when Droid needs input

**Example**: Add a `PreToolUse` hook with a `Bash` matcher that validates shell commands. When Droid tries to use `grep`, your hook blocks it and suggests using `rg` (ripgrep) instead. Droid receives the feedback and automatically adapts—no manual intervention required.

**Available hook events**

* **PreToolUse** - Runs before tool calls (can block them)
* **PostToolUse** - Runs after tool calls complete
* **UserPromptSubmit** - Runs when you submit a prompt
* **Notification** - Runs when Droid sends notifications
* **Stop** - Runs when Droid finishes responding
* **SubagentStop** - Runs when subagent tasks complete
* **PreCompact** - Runs before compact operations
* **SessionStart** - Runs at session start or resume
* **SessionEnd** - Runs when session ends

By encoding rules as hooks rather than prompt instructions, you turn suggestions into app-level code that executes every time it's expected to run. There are infinitely many applications—we're excited to see what you build.

<Note>
  For comprehensive hook documentation, see the [hooks guide](/cli/configuration/hooks-guide) and [hooks reference](/reference/hooks-reference).
</Note>
