Thank you for your interest in contributing to ClawCore! This document provides guidelines to make the contribution process smooth.
You don't need to write code to make ClawCore better. If you have an idea for a feature, describe it in natural language — the maintainer will implement it for you.
How to contribute a feature idea:
- Go to GitHub Issues and create a new issue
- Add the label
💡feature-ideato your issue - Think of yourself as a product manager — describe your idea as clearly and completely as possible:
- What problem does it solve?
- How should it work from the user's perspective?
- Any edge cases or special scenarios?
The more detailed your description, the better the result. Plain language is all you need — no technical jargon required.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/ClawCore.git cd ClawCore npm install - Create a branch for your feature or fix:
git checkout -b feat/my-feature
npm run dev # Run in development mode (tsx)
npm run build # Compile TypeScriptsrc/
├── agent/ # Core agent loop, soul, heartbeat
├── config/ # Configuration management
├── llm/ # LLM provider (OpenAI-compatible)
├── memory/ # Index-based memory system
├── skills/ # Skill loader and writer
├── tools/ # Tool definitions and executor
├── workspace/ # User folder, workbench, doc parser
└── index.ts # CLI entry point
- TypeScript with strict mode
- ESM modules (import/export, not require)
- Use
async/awaitfor all async operations - Add JSDoc comments for exported functions
Use Conventional Commits:
feat: add new skill auto-discovery
fix: prevent symlink path traversal
docs: update Chinese README
refactor: simplify heartbeat timer logic
- Keep PRs focused — one feature or fix per PR
- Update both
README.mdandREADME_CN.mdif your change affects documentation - Ensure
npm run buildpasses with no errors - Describe what your change does and why
When adding a new tool:
- Define the tool schema in
src/tools/definitions.ts - Add the handler in
src/tools/executor.ts - Update both READMEs with the new tool
- Ensure proper permission checks (especially
assertInsideWorkspace)
Built-in skills go in templates/ (copied on first run). User/AI-created skills live in the workspace skills/ directory.
- Use GitHub Issues
- Include your Node.js version, OS, and LLM provider
- For bugs, include steps to reproduce
By contributing, you agree that your contributions will be licensed under the MIT License.