Show HN: MyCoder, Claude-Code의 오픈 소스 대안
요약
MyCoder는 Claude Code의 오픈 소스 대안으로 설계된 AI 기반 코딩 CLI 도구입니다. Anthropic, OpenAI, Ollama 등 다양한 모델을 지원하며, 병렬 실행, 자가 수정, MCP 지원 등 강력한 에이전트 기능을 제공합니다.
핵심 포인트
- Anthropic, OpenAI, Ollama 등 다양한 LLM 모델 활용 가능
- 하위 에이전트 생성을 통한 병렬 작업 처리 및 자가 수정 기능 지원
- Model Context Protocol(MCP)을 통한 외부 컨텍스트 소스 액세스 지원
- GitHub 이슈 및 PR 연동을 지원하는 GitHub 모드 탑재
- 다양한 설정 파일 형식(.js, .ts, .json, .yaml 등)을 지원하는 유연한 구성
AI 기반 코딩 작업을 위한 명령줄 인터페이스 (Command-line interface, CLI). 자세한 내용은 MyCoder.ai 메인 웹사이트 및 공식 MyCoder.Ai Docs 웹사이트에서 확인할 수 있습니다.
- 🤖
AI 기반 (AI-Powered): 지능적인 코딩 지원을 위해 Anthropic의 Claude, OpenAI 모델 및 Ollama를 활용합니다. - 🛠️
확장 가능한 도구 시스템 (Extensible Tool System): 다양한 도구 카테고리를 갖춘 모듈형 아키텍처를 제공합니다. - 🔄
병렬 실행 (Parallel Execution): 동시 작업 처리를 위해 하위 에이전트 (sub-agents)를 생성할 수 있는 능력을 갖추고 있습니다. - 📝
자가 수정 (Self-Modification): 코드를 수정할 수 있으며, 스스로를 작성하며 구축 및 테스트되었습니다. - 🔍
스마트 로깅 (Smart Logging): 명확한 출력을 위해 계층적이고 색상으로 구분된 로깅 시스템을 사용합니다. - 👤
인간 호환성 (Human Compatible): README.md, 프로젝트 파일 및 셸 명령어를 사용하여 자체적인 컨텍스트 (context)를 구축합니다. - 🌐
GitHub 통합 (GitHub Integration): 워크플로의 일부로서 이슈 (issues) 및 PR (Pull Requests)과 함께 작업할 수 있는 GitHub 모드를 지원합니다. - 📄
모델 컨텍스트 프로토콜 (Model Context Protocol, MCP): 외부 컨텍스트 소스에 액세스하기 위한 MCP를 지원합니다. - 🧠
메시지 압축 (Message Compaction): 장시간 실행되는 에이전트를 위해 컨텍스트 윈도우 (context window)를 자동으로 관리합니다.
지원을 위해 MyCoder.ai 디스코드에 참여하세요: https://discord.gg/5K6TYrHGHt
npm install -g mycoder
NVM을 사용하여 Node.js를 설정하는 방법을 포함하여 macOS 및 Linux를 위한 자세한 설치 지침은 '시작하기 (Getting Started)' 가이드를 참조하세요.
# 대화형 모드 (Interactive mode)
mycoder -i
# 프롬프트와 함께 실행
...
MyCoder는 프로젝트 내의 설정 파일을 사용하여 구성됩니다. MyCoder는 ESLint 및 기타 현대적인 JavaScript 도구와 유사하게 여러 설정 파일 위치와 형식을 지원합니다.
MyCoder는 다음 위치에서 설정을 찾습니다 (우선순위 순):
mycoder.config.js - 프로젝트 루트 내
.mycoder.config.js - 프로젝트 루트 내
.config/mycoder.js - 프로젝트 루트 내
.mycoder.rc - 프로젝트 루트 내
.mycoder.rc - 홈 디렉토리 내
mycoder 필드 - package.json 내
~/.config/mycoder/config.js - (XDG 표준 사용자 구성)
다양한 파일 확장자가 지원됩니다: .js, .ts, .mjs, .cjs, .json, .jsonc, .json5, .yaml, .yml, 그리고 .toml.
원하는 위치에 설정 파일 (configuration file)을 생성하세요:
// mycoder.config.js
export default {
// GitHub integration
...
CLI 인자 (arguments)가 설정 파일의 설정을 덮어씁니다.
MyCoder는 에이전트 (agent)가 실행 중인 동안 수정 사항을 전달하는 기능을 지원합니다. 이는 에이전트가 경로를 벗어나거나 추가 정보가 필요하다고 판단될 때 유용합니다.
--interactive 플래그 (flag)와 함께 MyCoder를 시작하세요:
mycoder --interactive "Implement a React component"
에이전트가 실행되는 동안, Ctrl+M을 눌러 수정 모드 (correction mode)로 진입하세요.
수정 사항이나 추가적인 컨텍스트 (context)를 입력하세요.
Enter를 눌러 에이전트에게 수정 사항을 전송하세요.
에이전트는 메시지를 수신하고, 상위 에이전트 (parent agents)가 하위 에이전트 (sub-agents)에게 메시지를 보낼 수 있는 방식과 유사하게 이를 의사 결정 과정 (decision-making process)에 반영합니다.
설정 파일에서 대화형 수정 (interactive corrections) 기능을 활성화할 수 있습니다:
// mycoder.config.js
export default {
// ... 기타 옵션
...
MyCoder는 유연한 /mycoder 명령어를 사용하여 GitHub 이슈 (issue) 댓글에서 직접 실행할 수 있습니다:
/mycoder [여기에 지침 입력]
예시:
/mycoder implement a PR for this issue
/mycoder create an implementation plan
/mycoder suggest test cases for this feature
- mycoder - MyCoder를 위한 명령줄 인터페이스 (Command-line interface)
- mycoder-agent - MyCoder를 위한 에이전트 모듈 (Agent module)
- mycoder-docs - MyCoder를 위한 문서 웹사이트 (Documentation website)
# 저장소 (repository) 클론
git clone https://github.com/drivecore/mycoder.git
cd mycoder
...
MyCoder는 커밋 메시지 (commit messages)에 대해 Conventional Commits 사양을 따릅니다. 우리의 릴리스 (release) 프로세스는 완전히 자동화되어 있습니다:
- Conventional Commits 형식을 따라 변경 사항을 커밋하세요.
- PR을 생성하고 리뷰 및 승인을 받으세요.
- main 브랜치에 병합 (merged)되면, 우리의 CI/CD 파이프라인 (pipeline)이 다음을 수행합니다:
- 커밋 메시지를 기반으로 다음 버전을 결정합니다.
- 변경 로그 (changelog)를 생성합니다.
- GitHub 릴리스를 생성합니다.
- 릴리스에 태그 (tag)를 지정합니다.
- NPM에 게시합니다.
더 자세한 내용은 기여 가이드 (Contributing Guide)를 참조하세요.
MyCoder는 sessionStart 및 sessionMessage 도구에서 사용되는 브라우저 자동화 (Browser Automation)를 위해 Playwright를 사용합니다. 기본적으로 Playwright는 npx playwright install을 통해 브라우저를 별도로 설치해야 합니다.
이제 MyCoder에는 별도의 Playwright 브라우저 설치를 요구하는 대신, 이미 설치된 기존 브라우저를 사용할 수 있도록 하는 시스템 브라우저 감지 (System Browser Detection) 기능이 포함되었습니다. 이는 MyCoder가 전역 (Globally)으로 설치되었을 때 특히 유용합니다.
시스템 브라우저 감지는 다음과 같은 기능을 수행합니다:
- Windows, macOS, Linux에서 설치된 브라우저를 자동으로 감지합니다.
- Chrome, Edge, Firefox 및 기타 브라우저를 지원합니다.
- 헤드리스 모드 (Headless Mode) 및 깨끗한 세션 (Clean Session) 기능을 유지합니다.
- 시스템 브라우저를 찾을 수 없는 경우 Playwright의 번들 브라우저 (Bundled Browsers)로 대체합니다.
mycoder.config.js에서 브라우저 감지를 설정할 수 있습니다:
export default {
// 기타 설정...
// 시스템 브라우저 감지 설정
...
이 프로젝트에 기여하는 방법에 대한 자세한 내용은 CONTRIBUTING.md를 참조하세요.
이 프로젝트는 MIT 라이선스 (MIT License) 하에 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Code Generation의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기