- Development Requirements
- Development
- Build for production
- Scripts
- Package Scripts
- MCP Server Setup
- Project Architecture
- Node.js LTS+
- uv (for run mcp client)
git clone --recurse-submodules https://github.com/OpenAgentPlatform/Dive.git
cd Divegit pull
git submodule update --init --recursivenpm installNavigate to mcp-host directory and sync dependencies for mcp host:
cd mcp-host
uv syncnpm run devWhen running Dive in development mode, the configuration file will be automatically generated in the .config directory of your project root. This is different from the production environment where configuration files are stored in the user's home directory.
This allows developers to have separate configurations for development and production environments, making it easier to test different MCP server setups without affecting the production configuration.
To access or modify the development configuration:
/path/to/project/.config/mcp_config.json
/path/to/project/.config/command_alias.json
/path/to/project/.config/model_config.json
/path/to/project/.config/dive_httpd.json
/path/to/project/.config/customrules
npm run packageIf you are on macOS or Linux and want to build for Windows:
- Download Windows binaries
npm run download:windows-bin- Build using Docker
./scripts/docker/build-win.shdev- Start Electron development serverbuild- Build Electron application
package- Create application directorypackage:windows- Create Windows distributable packagepackage:linux- Create Linux distributable packagedocker:build-win- Build Windows version using Docker
After first launch, you can find the config.json file in these locations:
- macOS:
~/.dive/config - Windows:
%USERPROFILE%\.dive\config - Linux:
~/.dive/config
There are four ways to configure MCP servers:
- Click the menu button in the top-left corner to open the sidebar
- Click "MCP Server Management" at the bottom
- Click the "Add MCP Server" button
- Paste your MCP server configuration in JSON format
- Click "Save" to add the new server
Example configuration:
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}You can edit the config.json file directly in the above locations following each MCP server's documentation.
- Click the menu button in the top-left corner to open the sidebar
- Click "MCP Server Management" at the bottom
- Click the "Edit Config" button on the page
You can add your own MCP server scripts in the .dive/scripts directory in your home folder, then update the config.json accordingly.
Example:
- Create a new file
echo.jsin~/.dive/scripts - Update
config.json:
{
"mcpServers": {
"echo": {
"enabled": true,
"command": "node",
"args": [
"echo.js"
]
}
}
}src/
├── atoms/ # Global state management
│ ├── configState.ts # Model configuration state
│ ├── interfaceState.ts # UI interface state
│ └── historyState.ts # Chat history state
│
├── components/ # Reusable UI components
│ ├── ModelConfigForm # Model settings form
│ ├── Toast # Toast notifications
│ └── Header # App header
│
├── views/ # Page components
│ ├── Chat/ # Chat interface
│ ├── Setup/ # Initial setup
│ └── Welcome/ # Welcome page
│
├── styles/ # SCSS stylesheets
│ ├── components/ # Component styles
│ └── pages/ # Page-specific styles
│
└── hooks/ # Custom React hooks
electron/
├── main/ # Main process
│ └── index.ts # Main entry
└── preload/ # Preload scripts
└── index.ts # Bridge between main and renderer
mcp-host # git submodule for [dive-mcp-host](https://github.com/OpenAgentPlatform/dive-mcp-host)