Command-line interface for AI-powered coding tasks. Full details available on the main MyCoder.ai website and the Official MyCoder.Ai Docs website.
- π€ AI-Powered: Leverages Anthropic's Claude, OpenAI models, and Ollama for intelligent coding assistance
- π οΈ Extensible Tool System: Modular architecture with various tool categories
- π Parallel Execution: Ability to spawn sub-agents for concurrent task processing
- π Self-Modification: Can modify code, it was built and tested by writing itself
- π Smart Logging: Hierarchical, color-coded logging system for clear output
- π€ Human Compatible: Uses README.md, project files and shell commands to build its own context
- π GitHub Integration: GitHub mode for working with issues and PRs as part of workflow
- π Model Context Protocol: Support for MCP to access external context sources
- π§ Message Compaction: Automatic management of context window for long-running agents
Please join the MyCoder.ai discord for support: https://discord.gg/5K6TYrHGHt
npm install -g mycoder
For detailed installation instructions for macOS and Linux, including how to set up Node.js using NVM, see our Getting Started guide.
# Interactive mode
mycoder -i
# Run with a prompt
mycoder "Implement a React component that displays a list of items"
# Run with a prompt from a file
mycoder -f prompt.txt
# Enable interactive corrections during execution (press Ctrl+M to send corrections)
mycoder --interactive "Implement a React component that displays a list of items"
# Disable user prompts for fully automated sessions
mycoder --userPrompt false "Generate a basic Express.js server"
# Disable user consent warning and version upgrade check for automated environments
mycoder --upgradeCheck false "Generate a basic Express.js server"
MyCoder is configured using a configuration file in your project. MyCoder supports multiple configuration file locations and formats, similar to ESLint and other modern JavaScript tools.
MyCoder will look for configuration in the following locations (in order of precedence):
mycoder.config.js
in your project root.mycoder.config.js
in your project root.config/mycoder.js
in your project root.mycoder.rc
in your project root.mycoder.rc
in your home directorymycoder
field inpackage.json
~/.config/mycoder/config.js
(XDG standard user configuration)
Multiple file extensions are supported: .js
, .ts
, .mjs
, .cjs
, .json
, .jsonc
, .json5
, .yaml
, .yml
, and .toml
.
Create a configuration file in your preferred location:
// mycoder.config.js
export default {
// GitHub integration
githubMode: true,
// Browser settings
headless: true,
userSession: false,
// System browser detection settings
browser: {
// Whether to use system browsers or Playwright's bundled browsers
useSystemBrowsers: true,
// Preferred browser type (chromium, firefox, webkit)
preferredType: 'chromium',
// Custom browser executable path (overrides automatic detection)
// executablePath: null, // e.g., '/path/to/chrome'
},
// Model settings
provider: 'anthropic',
model: 'claude-3-7-sonnet-20250219',
maxTokens: 4096,
temperature: 0.7,
// Custom settings
// customPrompt can be a string or an array of strings for multiple lines
customPrompt: '',
// Example of multiple line custom prompts:
// customPrompt: [
// 'Custom instruction line 1',
// 'Custom instruction line 2',
// 'Custom instruction line 3',
// ],
profile: false,
// Base URL configuration (for providers that need it)
baseUrl: 'http://localhost:11434', // Example for Ollama
// MCP configuration
mcp: {
servers: [
{
name: 'example',
url: 'https://mcp.example.com',
auth: {
type: 'bearer',
token: 'your-token-here',
},
},
],
defaultResources: ['example://docs/api'],
defaultTools: ['example://tools/search'],
},
};
CLI arguments will override settings in your configuration file.
MyCoder supports sending corrections to the main agent while it's running. This is useful when you notice the agent is going off track or needs additional information.
-
Start MyCoder with the
--interactive
flag:mycoder --interactive "Implement a React component"
-
While the agent is running, press
Ctrl+M
to enter correction mode -
Type your correction or additional context
-
Press Enter to send the correction to the agent
The agent will receive your message and incorporate it into its decision-making process, similar to how parent agents can send messages to sub-agents.
You can enable interactive corrections in your configuration file:
// mycoder.config.js
export default {
// ... other options
interactive: true,
};
MyCoder can be triggered directly from GitHub issue comments using the flexible /mycoder
command:
/mycoder [your instructions here]
Examples:
/mycoder implement a PR for this issue
/mycoder create an implementation plan
/mycoder suggest test cases for this feature
Learn more about GitHub comment commands
- mycoder - Command-line interface for MyCoder
- mycoder-agent - Agent module for MyCoder
- mycoder-docs - Documentation website for MyCoder
# Clone the repository
git clone https://github.com/drivecore/mycoder.git
cd mycoder
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Create a commit with interactive prompt
pnpm commit
MyCoder follows the Conventional Commits specification for commit messages. Our release process is fully automated:
- Commit your changes following the conventional commits format
- Create a PR and get it reviewed and approved
- When merged to main, our CI/CD pipeline will:
- Determine the next version based on commit messages
- Generate a changelog
- Create a GitHub Release
- Tag the release
- Publish to NPM
For more details, see the Contributing Guide.
MyCoder uses Playwright for browser automation, which is used by the sessionStart
and sessionMessage
tools. By default, Playwright requires browsers to be installed separately via npx playwright install
.
MyCoder now includes a system browser detection feature that allows it to use your existing installed browsers instead of requiring separate Playwright browser installations. This is particularly useful when MyCoder is installed globally.
The system browser detection:
- Automatically detects installed browsers on Windows, macOS, and Linux
- Supports Chrome, Edge, Firefox, and other browsers
- Maintains headless mode and clean session capabilities
- Falls back to Playwright's bundled browsers if no system browser is found
You can configure the browser detection in your mycoder.config.js
:
export default {
// Other configuration...
// System browser detection settings
browser: {
// Whether to use system browsers or Playwright's bundled browsers
useSystemBrowsers: true,
// Preferred browser type (chromium, firefox, webkit)
preferredType: 'chromium',
// Custom browser executable path (overrides automatic detection)
// executablePath: null, // e.g., '/path/to/chrome'
},
};
Please see CONTRIBUTING.md for details on how to contribute to this project.
This project is licensed under the MIT License - see the LICENSE file for details.