- Node.js 18+ (https://nodejs.org/)
- npm or yarn
- Git
-
Navigate to project directory:
cd OASIS-IDE -
Install dependencies:
npm install
-
Build OASIS MCP Server (if not already built):
cd ../MCP npm install npm run build cd ../OASIS-IDE
-
Start development:
npm run dev
This will:
- Start Electron main process (watching for changes)
- Start Vite dev server on http://localhost:3000
- Open OASIS IDE window
OASIS-IDE/
├── src/
│ ├── main/ # Electron main process
│ │ ├── index.ts # Main entry point
│ │ ├── preload.ts # Preload script
│ │ └── services/ # Backend services
│ │ ├── MCPServerManager.ts
│ │ ├── OASISAPIClient.ts
│ │ └── AgentRuntime.ts
│ ├── renderer/ # React frontend
│ │ ├── components/ # React components
│ │ ├── contexts/ # React contexts
│ │ ├── styles/ # CSS files
│ │ ├── App.tsx # Main app component
│ │ └── main.tsx # React entry point
│ └── shared/ # Shared types/utils (to be added)
├── dist/ # Build output
└── package.json
npm run dev- Main process auto-reloads on changes
- Renderer hot-reloads via Vite
- DevTools open automatically
npm run buildBuilds both main and renderer processes to dist/.
# Package for current platform
npm run package
# Package for specific platform
npm run package:mac
npm run package:win
npm run package:linuxThe IDE automatically starts the OASIS MCP server located at:
../../MCP/dist/index.js
Make sure this path is correct or update MCPServerManager.ts.
Default API URL: http://127.0.0.1:5003
Set via environment variable:
export OASIS_API_URL=http://your-oasis-api-url
# If the IDE is run from outside the OASIS monorepo (e.g. external repo), point to the MCP server:
# export OASIS_MCP_SERVER_PATH=/path/to/MCP/dist/src/index.jsDefault IDE Assistant agent: Chat can use the OASIS IDE Assistant agent (Phase 1 backend). The agent ID defaults to oasis-ide-assistant. When the platform registers the agent with a different ID, set:
export OASIS_IDE_ASSISTANT_AGENT_ID=<your-agent-guid>The IDE can run Claude Sonnet 4.6 as a tool-using coding agent directly against the open workspace (read/write files, search the codebase, run shell commands) through OpenServ's Anthropic-compatible endpoint. Set:
export SERV_API_KEY=your_openserv_keyWhen this is set, an "Agent mode (Claude)" toggle appears in the chat panel. With it enabled, chat messages are sent through a full agentic loop instead of a single Q&A turn:
- Claude can call
read_file,write_file,list_directory,search_files, andrun_command, scoped to the currently open workspace folder. write_fileandrun_commandalways require an explicit Apply/Run or Reject click in the chat panel before they take effect — nothing is changed or executed silently.- Without
SERV_API_KEYset, the toggle is hidden and chat behaves exactly as before. - Implementation:
src/main/services/ClaudeAgentService.ts, wired through IPC insrc/main/index.ts(claude:has-agent,claude:run-task,claude:confirm-response) and exposed to the renderer viapreload.ts.
The same agentic tool loop is also available through OpenServ's OpenAI-compatible chat/completions endpoint, which works with every model in the SERV catalog (OpenAI, Anthropic, Google, xAI, Qwen, DeepSeek), not just Claude. It uses the same SERV_API_KEY:
export SERV_API_KEY=your_openserv_keyWhen set, an "Agent mode (OpenServ)" toggle appears in the chat panel next to a model picker (GPT-5.5/5.4/o3/o4-mini, Claude Opus/Sonnet/Haiku, Gemini, Grok, Qwen, DeepSeek, etc.) — see OPENSERV_MODELS in OpenServAgentService.ts for the full list. Only one agent mode can be active at a time.
- Same tools as the Claude agent (
read_file,write_file,list_directory,search_files,run_command), same write/run confirmation gate. - Implementation:
src/main/services/OpenServAgentService.ts, wired through IPC insrc/main/index.ts(openserv:has-agent,openserv:list-models,openserv:run-task,openserv:confirm-response) and exposed to the renderer viapreload.ts.
If the IDE lives in a separate repo (e.g. for collaboration), it can still use OASIS:
- OASIS API: Set
OASIS_API_URLto your OASIS API (localhttp://127.0.0.1:5003, staging, or production). All auth, chat, agents, and health go over HTTP. - OASIS MCP: Set
OASIS_MCP_SERVER_PATHto the absolute path of the MCP server entry file (.../MCP/dist/src/index.js). Options:- Clone the OASIS monorepo (or just the MCP folder) somewhere and build it; point
OASIS_MCP_SERVER_PATHat.../MCP/dist/src/index.js. - If
@oasis-unified/mcp-serveris published to npm, install it and setOASIS_MCP_SERVER_PATHtonode_modules/@oasis-unified/mcp-server/dist/index.js(or the path the package uses for its bin).
- Clone the OASIS monorepo (or just the MCP folder) somewhere and build it; point
No other monorepo code is required; the IDE has no workspace package dependencies.
- Check that the MCP entry file exists (monorepo:
../MCP/dist/src/index.js; or path inOASIS_MCP_SERVER_PATH) - Verify MCP server is built:
cd ../MCP && npm run build - Check console for errors
- Verify OASIS API is running
- Check API URL in
OASISAPIClient.ts - Test with:
curl http://127.0.0.1:5003/api/health
- Clear node_modules:
rm -rf node_modules && npm install - Clear build:
rm -rf dist && npm run build - Check Node.js version:
node --version(should be 18+)
-
Review Briefs:
- Master Brief:
/Docs/OASIS_IDE_MASTER_BRIEF.md - Component Briefs:
/Docs/OASIS_IDE_BRIEF_*.md
- Master Brief:
-
Start Development:
- Pick a component from the briefs
- Implement following the specifications
- Test and iterate
-
Integration:
- Ensure components work together
- Test MCP tool execution
- Test agent invocation
✅ Foundation Complete:
- Project structure
- Electron setup
- React setup
- Basic layout
- MCP integration skeleton
- Agent system skeleton
🚧 In Progress:
- Component implementations
- AI assistant integration
- OASIS development tools
📋 Planned:
- Full feature implementation
- Testing
- Documentation
- Packaging
Happy coding! 🚀