A powerful command palette interface for Chrome with AI-powered tools and extensible architecture.
- 🤖 AI-powered command palette with OpenAI and local Ollama support
- 🔒 Secure by design with encrypted storage
- ⚡ Real-time responses with streaming support
- 🛠️ Extensible tool system with host-specific configurations
- ⌨️ Fully customizable keyboard shortcuts
- 🔄 Smart context-aware suggestions and autocomplete
- 📚 Built-in help system and documentation
If you're new to coding, you'll need to set up a few tools first. Don't worry, we'll walk you through it!
Node.js is a runtime environment that lets you run JavaScript code, and npm (Node Package Manager) comes with it.
-
Download Node.js:
- Go to Node.js website
- Download the "LTS" (Long Term Support) version
- It's the one on the left that says "Recommended For Most Users"
-
Install Node.js:
- Windows: Run the downloaded
.msifile and follow the installation wizard - Mac: Run the downloaded
.pkgfile and follow the installation wizard - Linux: Use your package manager (e.g.,
sudo apt install nodejs npmfor Ubuntu)
- Windows: Run the downloaded
-
Verify Installation:
- Open Terminal (Mac/Linux) or Command Prompt (Windows)
- Type
node --versionand press Enter - Type
npm --versionand press Enter - If you see version numbers, you're good to go!
Git helps you download and update the code.
-
Download Git:
- Windows: Download from Git for Windows
- Mac: It might already be installed. If not, it will prompt you to install when you first use it
- Linux: Use your package manager (e.g.,
sudo apt install gitfor Ubuntu)
-
Install Git:
- Windows: Run the downloaded installer and use all default options
- Mac: If prompted, follow the installation instructions
- Linux: The package manager will handle it
-
Verify Installation:
- Open Terminal/Command Prompt
- Type
git --versionand press Enter - If you see a version number, you're ready!
- Open Terminal/Command Prompt
- Navigate to where you want the code:
# Windows example: cd C:\Users\YourName\Documents # Mac/Linux example: cd ~/Documents
- Clone (download) the code:
git clone https://github.com/Carbonitex/carbon-commander.git cd carbon-commander
Now you're ready to follow the Installation instructions below!
- Clone this repository
- Run
npm install - Build the extension:
npm run build - Load the unpacked extension in Chrome:
- Navigate to
chrome://extensions/ - Enable Developer mode
- Click "Load unpacked"
- Select the
distdirectory
- Navigate to
To update Carbon Commander to the latest version:
- In your project directory, pull the latest changes:
git pull - Install any new dependencies:
npm install - Rebuild the extension:
npm run build - Chrome will automatically reload the extension with the new changes
There are three ways to open Carbon Commander:
- Keyboard Shortcut: By default, press
Ctrl + K(Windows/Linux) or⌘ + K(Mac) - Extension Icon: Click the Carbon Commander icon in your Chrome toolbar
- Context Menu: Right-click anywhere on a page and select "Carbon Commander"
Carbon Commander now features a comprehensive settings dialog for managing:
- API keys (with secure, encrypted storage)
- Keyboard shortcuts
- Host-specific system prompts
- Command history preferences
- MCP service connections
-
Site-Specific Tools:
- Automatically activated based on the current website
- Deep integration with popular platforms
- Context-aware suggestions
- Real-time data processing
-
Local Tools:
- Built-in functionality
- No external dependencies
- Fast execution
- Click the ⚡ icon to view all tools
-
MCP Tools:
⚠️ NOTE: MCP Integration Status
The MCP (Model Context Protocol) integration has been significantly improved but should still be used with appropriate caution and still remains largely untested.- External service integration
- Additional capabilities
- Network-dependent
- Automatic discovery
-
Autocomplete:
- Host-specific command history
- Context-aware suggestions
-
Secure Communication:
- Encrypted key storage
- Signature verification for extension communication
- Authentication token management
- Secure initialization process
-
AI Integration:
- OpenAI for advanced processing
- Ollama for local operations
- Real-time responses
- Automatic provider selection
- Get an API key from OpenAI's platform
- Use the command:
set openai-key YOUR_API_KEYin Carbon Commander
(fill this in)
- Install Ollama
- For macOS users, enable external connections:
launchctl setenv OLLAMA_ORIGINS "*"
Carbon Commander supports integration with external MCP services, allowing you to extend its capabilities with remote AI tools and services.
-
Basic Connection:
mcp connect my-service https://my-mcp-service.example.com -
With Authentication (if required):
// Through the API window.carbonCommander.mcpToolCaller.configureMCPService({ serviceId: 'my-service', endpoint: 'https://my-mcp-service.example.com', apiKey: 'your-api-key', options: { autoConnect: true, autoReconnect: true } });
- Automatic Tool Discovery: MCP services automatically expose their tools to Carbon Commander
- Real-time Status: Connection status is displayed in the command bar UI
- Seamless Integration: MCP tools work alongside local tools transparently
- System Prompt Enhancement: MCP services can customize system prompts
- Scope Building: Support for custom scope building per MCP service
- View Services: The command bar shows connected MCP services with their status
- Disconnect Service:
mcp disconnect my-service - Service Status: Connection status is shown in the UI badges
- Auto-reconnect: Services can be configured to automatically reconnect if disconnected
To create a compatible MCP service, implement these endpoints:
// Required endpoints
GET /discover-tools // Returns available tools
POST /execute // Executes a tool function
GET /status // Returns service status
// Optional endpoints
POST /build-scope // Customizes tool scope
POST /system-prompt // Enhances system promptExample tool definition in an MCP service:
{
name: "email-tools",
tools: [{
name: "send-email",
description: "Send an email through the MCP service",
parameters: {
type: "object",
properties: {
to: { type: "string" },
subject: { type: "string" },
body: { type: "string" }
},
required: ["to", "subject", "body"]
}
}]
}- Use HTTPS for all MCP service connections
- Implement proper authentication (API keys, tokens, etc.)
- Validate all incoming requests on the MCP service
- Consider rate limiting and access controls
- Monitor service usage and implement logging
Carbon Commander uses a modular tool system. Tools are defined as JavaScript classes with specific methods:
class CustomToolset {
static _CarbonBarPageLoadFilter(window) {
return window.location.href.includes('example.com');
}
// See more examples in the SMTools.js and GeneralTools.js files.
// Such as _CarbonBarPageLoadFilter, _CarbonBarBuildScope, _CarbonBarSystemPrompt, etc.
static MyTool = {
name: 'my-tool',
description: 'Description of what the tool does',
function: {
parameters: {
type: 'object',
properties: {
param1: {
type: 'string',
description: 'Parameter description'
}
},
required: ['param1']
}
},
execute: async (scope, args) => {
await new Promise(resolve => setTimeout(resolve, 500));
return { success: true, result: 'Tool result given to AI after 500ms' };
}
};
}
(window.sbaiTools ??= {}).CustomToolsetName = CustomToolsetName;One key learning from this project was the importance of MCP (Model Context Protocol). Future versions will deeply integrate MCP support, enabling seamless interaction with a wide variety of AI services and models. This integration will allow for more flexible and powerful AI capabilities across different providers and platforms.
USE AT YOUR OWN RISK: Carbon Commander and its authors, contributors, and integrated software providers assume no liability for any actions taken by the extension on behalf of the user. The extension executes commands and interacts with your browser based on user inputs and AI recommendations. Users are responsible for reviewing and approving any actions before they are executed. While I strive for safety and security, I cannot guarantee the extension will always behave as intended or that it won't cause unintended consequences.
This project is licensed under the MIT License - see the LICENSE file for details.
This project is unique - it's built through pair programming with AI (specifically Claude + Cursor). I welcome contributions and encourage you to use AI assistants in your development process! Check out CONTRIBUTING.md for more details.
