How We Use MyCoder to Build MyCoder - A Self-Improving AI Tool

By Ben Houston, 2025-03-05 · 8 min read

One of the most compelling demonstrations of MyCoder's capabilities is how we use it to improve itself. This recursive development approach not only showcases the tool's practical applications but also helps us identify improvement opportunities from a user's perspective.

The Self-Improving AI Tool

Over the past few days, MyCoder has been instrumental in its own development, with more than 20 issues addressed and 15 pull requests merged. This productivity boost has allowed us to implement new features, fix bugs, and improve documentation at a pace that would be challenging with conventional development approaches.

Recent Development Activity

Looking at the GitHub repository activity from the past two days alone:

  • 15+ Pull Requests merged: From feature implementations to bug fixes
  • 20+ Issues created and addressed: Including feature requests, bug reports, and improvements
  • Multiple new features implemented: Including multi-provider support, configuration system, and GitHub integration

This rapid development cycle demonstrates how MyCoder can accelerate software projects, even complex ones like itself.

Key Use Cases

1. Feature Implementation

MyCoder has proven particularly effective at implementing complete features based on high-level descriptions. For example, the recent addition of the configuration system:

mycoder "Create a persistent configuration system that allows users to set default values for command line options"

This resulted in a complete implementation including:

  • Configuration file management
  • Command-line interface for setting and retrieving options
  • Documentation updates
  • Test coverage

Another example is the multi-provider support feature, which expanded MyCoder beyond Claude to support OpenAI, Mistral AI, xAI/Grok, and Ollama:

mycoder "Add support for OpenAI o3 mini and GPT-4o models"

2. Bug Fixing

MyCoder excels at diagnosing and fixing bugs, even in its own codebase. A recent example involved fixing cross-platform compatibility issues:

mycoder "Replace shell commands with Node.js APIs for cross-platform compatibility"

This addressed performance issues on Windows compared to MacOS by replacing shell commands with native Node.js APIs, resulting in more consistent behavior across operating systems.

Another example was addressing newline handling in GitHub messages:

mycoder "Fix newline escape characters in GitHub messages"

3. Code Refactoring

MyCoder has successfully refactored its own code structure to improve maintainability and performance:

mycoder "Refactor toolAgent structure"

This refactoring reorganized the tool agent system to be more modular and easier to extend with new capabilities.

Another example:

mycoder "Remove deprecated toolAgent.ts file and fix direct imports"

4. Documentation

MyCoder has been used to generate and update its own documentation, ensuring that it stays current with new features:

mycoder "Update documentation to include new configuration options and multi-provider support"

The tool is particularly good at maintaining consistency between code and documentation, as it can analyze the implementation details and reflect them accurately in the docs.

Development Workflow

Our typical workflow when using MyCoder to improve itself follows these steps:

  1. Issue Creation: We create a GitHub issue describing the feature, bug, or improvement needed
  2. MyCoder Prompt: We formulate a prompt that captures the requirements
  3. Code Generation: MyCoder analyzes the existing codebase and generates the necessary changes
  4. Testing & Validation: We review the changes, run tests, and ensure everything works as expected
  5. Pull Request: MyCoder creates a pull request with the changes
  6. Review & Merge: After review, the PR is merged into the main codebase

With GitHub mode enabled, MyCoder can handle much of this workflow automatically.

Challenges and Solutions

While using MyCoder to improve itself has been largely successful, we've encountered some interesting challenges:

1. Context Understanding

Challenge: As the codebase grows, fitting the entire context within the AI's context window becomes difficult.

Solution: MyCoder now intelligently navigates the codebase, focusing on relevant files and using its browsing capabilities to research when needed.

2. Maintaining Consistency

Challenge: Ensuring consistent coding style and patterns across contributions.

Solution: We've added custom prompts that guide MyCoder to follow project conventions:

mycoder config set customPrompt "Follow the existing coding style. Use functional programming patterns when possible. Write comprehensive tests for all new functionality."

3. Complex Architectural Decisions

Challenge: Some architectural decisions require broader understanding and consideration of tradeoffs.

Solution: We use MyCoder in a collaborative way for these cases, where it proposes options with pros and cons, and humans make the final architectural decisions.

Metrics and Productivity Gains

The productivity gains from using MyCoder on its own development have been substantial:

  • Development Speed: Features that would typically take days are implemented in hours
  • Code Quality: Consistent test coverage and adherence to best practices
  • Documentation: Automatically updated with changes, reducing documentation drift
  • Issue Resolution: Faster turnaround on bug fixes and feature requests

Lessons Learned

Our experience using MyCoder to improve itself has taught us several valuable lessons:

  1. Clear Requirements Matter: The more specific the issue description, the better the results
  2. Incremental Changes Work Best: Breaking large features into smaller, focused tasks yields better outcomes
  3. AI + Human Collaboration: The most effective approach combines AI implementation with human oversight
  4. Test-Driven Development: Having good tests helps validate AI-generated changes quickly

Conclusion

Using MyCoder to build and improve itself has created a virtuous cycle where each improvement makes the tool more capable of implementing the next feature or fixing the next bug. This recursive development approach not only accelerates our development process but also gives us direct insight into the user experience.

As we continue to enhance MyCoder, we're excited to see how far this self-improving cycle can go. The rapid pace of recent development suggests that AI-assisted development tools like MyCoder are fundamentally changing how software is built, making development faster, more accessible, and more enjoyable.

If you're interested in trying MyCoder for your own projects, check out our GitHub repository or join our Discord community to share your experiences and learn from others.

Happy coding with MyCoder!