- Development Requirements
- Development
- Build for production
- Scripts
- Package Scripts
- MCP Server Setup
- Project Architecture
- Node.js LTS+
npm install
npm run dev:electron
npm run package
If 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.sh
dev
- Start Vite development serverdev:electron
- Start Electron development serverbuild
- Build web assetsbuild:electron
- Build Electron applicationdownload:windows-bin
- Download Windows binaries for cross-platform build
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:
~/Library/Preferences/dive
- Windows:
C:\Users\USERNAME\AppData\Local\Dive\Data
- Linux:
~/.config/dive
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.js
in~/.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
services/ # Backend services