Autonomous AI Agent Desktop Application
An open-source autonomous AI agent with full system access. Supports Claude and Gemini models. Complete file management, code execution, web search, browser automation, and more.
Nimbus is a fully autonomous AI agent that can:
- Read any file on your system with line numbers and syntax awareness
- Write new files with automatic directory creation
- Edit existing files with precise text replacement
- Search files using glob patterns (
**/*.js,src/**/*.ts) - Grep through code with regex patterns
- Copy, Move, Delete files and directories
- Run any shell command - git, npm, python, docker, and more
- Execute scripts, build projects, run tests
- Full access to system tools and utilities
- Streaming output for long-running commands
- WebSearch - Search the internet using DuckDuckGo (no API key needed)
- WebFetch - Fetch and read web pages, extract text content
- Research topics, find documentation, gather information
- TodoWrite - Create and track multi-step task progress
- TodoRead - View current task list status
- Break down complex tasks into manageable steps
- Track completion status (pending, in_progress, completed)
- Analyze file structure, functions, classes
- Extract imports and dependencies
- Understand codebase architecture
| Feature | Description |
|---|---|
| Fully Autonomous | Agent completes tasks independently without constant prompting |
| 32 Built-in Tools | File ops, bash, web search, computer use, browser extension, task tracking |
| Chrome Extension | Real browser automation with DOM access, form filling, and screenshots |
| Deletion Protection | File deletions require explicit user approval |
| Computer Use | Browser automation with screenshots, mouse, keyboard control |
| Streaming Responses | Real-time output for fast feedback |
| Multi-Model Support | Claude Sonnet/Opus and Gemini 3 Flash/Pro |
| Multi-Turn Agentic Loop | Up to 50 turns per task for complex operations |
| Progress Visibility | See what the agent is doing at each step |
| Tool Visualization | View tool inputs and outputs in real-time |
| Session Persistence | Conversations maintain context across messages |
| Free Models Available | Use Gemini models through Google Cloud Code |
| Tool | Description |
|---|---|
Read |
Read file contents with line numbers |
Write |
Create or overwrite files |
Edit |
Replace specific text in files |
Glob |
Find files by pattern |
Grep |
Search file contents with regex |
ListDir |
List directory contents |
MakeDir |
Create directories |
Move |
Move or rename files |
Copy |
Copy files or directories |
Delete |
Request file deletion (requires approval) |
ConfirmDelete |
Execute approved deletion |
CancelDelete |
Cancel pending deletion |
| Tool | Description |
|---|---|
Bash |
Execute shell commands (git, npm, python, etc.) |
| Tool | Description |
|---|---|
WebSearch |
Search the internet (DuckDuckGo) |
WebFetch |
Fetch and read web page contents |
| Tool | Description |
|---|---|
TodoWrite |
Create and update task list |
TodoRead |
Read current tasks |
Progress |
Report current step to user |
| Tool | Description |
|---|---|
CodeAnalysis |
Analyze code structure and dependencies |
| Tool | Description |
|---|---|
Screenshot |
Take a screenshot of the current screen |
MouseClick |
Click at screen coordinates (0-1000 scaled) |
TypeText |
Type text at cursor position |
KeyPress |
Press key combinations (Ctrl+C, Enter, etc.) |
OpenBrowser |
Open browser and navigate to URL |
Scroll |
Scroll screen up/down/left/right |
Wait |
Wait for specified duration |
| Tool | Description |
|---|---|
BrowserNavigate |
Navigate browser to a URL |
BrowserClick |
Click element by selector or text |
BrowserType |
Type into input fields |
BrowserRead |
Read page content (text/html/markdown) |
BrowserScreenshot |
Screenshot the current tab |
BrowserScroll |
Scroll the page |
BrowserGetTabs |
List all open tabs |
BrowserSwitchTab |
Switch to a specific tab |
BrowserFillForm |
Fill multiple form fields at once |
BrowserGetElements |
Get info about elements matching selector |
claude-sonnet-4-5-thinking- Claude Sonnet 4.5 with extended thinking (default)claude-opus-4-5-thinking- Claude Opus 4.5 with extended thinking
gemini-3-flash- Gemini 3 Flash with thinkinggemini-3-pro-low- Gemini 3 Pro (lower quota)gemini-3-pro-high- Gemini 3 Pro (higher quota)
Note: All models have full agentic capabilities - the same 15 tools work with both Claude and Gemini.
- Node.js 18+
- antigravity-claude-proxy running
git clone https://github.com/ComposioHQ/open-claude-cowork.git
cd open-claude-cowork
# Install Electron app dependencies
npm install
# Install backend dependencies
cd server
npm install
cd ..cp .env.example .envEdit .env:
# Antigravity Provider (Default)
ANTIGRAVITY_PROXY_URL=http://localhost:8080
ANTIGRAVITY_MODEL=claude-sonnet-4-5-thinking
# For the proxy passthrough
ANTHROPIC_API_KEY=antigravity-proxy
ANTHROPIC_BASE_URL=http://localhost:8080
# Optional: Composio for 500+ external tools
COMPOSIO_API_KEY=your-composio-api-keyTerminal 1 - Antigravity Proxy:
cd antigravity-claude-proxy
npm install
npm start
# First time: Open http://localhost:8080 and add your Google accountTerminal 2 - Backend Server:
cd server
npm startTerminal 3 - Electron App:
npm start- Open Chrome and go to
chrome://extensions - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked"
- Select the
chrome-extensionfolder from this project - The extension icon will appear in your toolbar
- Click it to see connection status
The extension automatically connects to the backend via WebSocket at ws://localhost:3001/browser.
┌─────────────────────────────────────────────────────────────────┐
│ Electron App │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Main Process │ │ Renderer Process │ │
│ │ (main.js) │ │ (renderer.js) │ │
│ └────────┬────────┘ └────────┬─────────┘ │
│ │ │ │
│ └──────────┬───────────┘ │
└──────────────────────┼───────────────────────────────────────────┘
│ HTTP + SSE Streaming
▼
┌─────────────────────────────────────────────────────────────────┐
│ Backend Server │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Express.js │───▶│ Antigravity │ │
│ │ (server.js) │ │ Provider │ │
│ └─────────────────┘ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Local Tool Executor │ │
│ │ (15 tools) │ │
│ └─────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Antigravity Claude Proxy (:8080) │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Multi-Account │───▶│ Google Cloud │ │
│ │ Load Balancer │ │ Code API │ │
│ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
- User sends a message → Frontend captures and sends to backend
- Backend starts agentic loop → Sends message + tools to proxy
- Proxy routes to Google Cloud Code → Claude or Gemini processes
- Model returns tool calls → Backend executes tools locally
- Tool results sent back → Loop continues until task complete
- Streaming output → User sees progress in real-time
Access the settings by clicking the gear icon in the left sidebar. The settings panel embeds the Antigravity proxy's web UI with tabs for:
- Dashboard - Overview and quick stats
- Accounts - Manage Google accounts for API access
- Models - View available models
- Settings - Configure proxy settings
- Logs - View request logs
"Create a new React component for user authentication with form validation"
"Find all TODO comments in the codebase and create a task list"
"Refactor this function to use async/await instead of callbacks"
"Run the tests and fix any failures"
"Organize all files in Downloads by file type"
"Find all large files over 100MB and list them"
"Create a backup of the src folder"
"Rename all .txt files to use kebab-case"
"Search for the latest React 19 features and summarize them"
"Fetch the documentation for Express.js error handling"
"Research best practices for API security"
"Analyze the package.json and list all dependencies"
"Count lines of code by file type in this project"
"Find all functions that don't have error handling"
open-claude-cowork/
├── main.js # Electron main process
├── preload.js # IPC security bridge
├── renderer/
│ ├── index.html # Chat interface with settings panel
│ ├── renderer.js # Frontend logic & streaming
│ └── style.css # Styling
├── server/
│ ├── server.js # Express + Provider routing
│ ├── tools/
│ │ └── index.js # 15 tool implementations
│ ├── providers/
│ │ ├── base-provider.js # Abstract base
│ │ ├── antigravity-provider.js # Main provider with agentic loop
│ │ ├── claude-provider.js # Direct Claude SDK
│ │ └── opencode-provider.js # Opencode SDK
│ └── package.json
├── antigravity-claude-proxy/ # Proxy for Google Cloud Code
├── package.json
├── .env # Configuration (not tracked)
└── .env.example # Template
- Ensure antigravity-claude-proxy is running on port 8080
- Visit http://localhost:8080 to verify
- First time: Add a Google account via the web UI
- Add more Google accounts to the proxy
- Switch to Gemini models (often have higher quotas)
- Wait for rate limits to reset
- Check file paths are absolute
- Verify permissions for file operations
- Check server logs for detailed errors
- Gemini models are generally faster than Claude
- Streaming is enabled by default for real-time output
- Complex tasks with many tools take longer
ANTIGRAVITY_PROXY_URL=http://your-proxy-host:8080ANTIGRAVITY_MODEL=gemini-3-flashConfigure in server/providers/antigravity-provider.js:
this.maxTokens = 16384; // Increase for longer responses
this.maxTurns = 50; // Increase for more complex tasksFor thinking models, adjust the thinking budget:
body.thinking = { type: 'enabled', budget_tokens: 10000 };- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Nimbus is built upon and inspired by these amazing projects:
- antigravity-claude-proxy - Proxy for accessing Claude and Gemini models
- Open Claude Cowork - Original autonomous agent desktop application by Composio
MIT License - See LICENSE for details.
Not affiliated with Google or Anthropic. This is an independent open-source project and is not endorsed by, sponsored by, or affiliated with Google LLC or Anthropic PBC.
- "Gemini", "Google Cloud", and "Google" are trademarks of Google LLC.
- "Claude" and "Anthropic" are trademarks of Anthropic PBC.
Software is provided "as is", without warranty. You are responsible for complying with all applicable Terms of Service and Acceptable Use Policies.
Nimbus - Autonomous AI Agent
Multi-model support with Claude & Gemini