First off, thank you for considering contributing to memoryblock! It's people like you that make the open-source community such an amazing place to learn, inspire, and create.
We welcome contributions of all kinds: bug fixes, new features, documentation improvements, or even just typo fixes.
- Website / Docs - Read the site to understand how memoryblock works.
- GitHub Issues - Browse existing bugs or feature requests.
- Sponsors - Consider supporting the project.
The memoryblock workspace is organized as a monorepo and utilizes Bun for running directly from source and pnpm for package management.
- Node.js: Version 18.x or higher.
- pnpm: Version 10.x or higher.
- Bun: Version 1.0.0 or higher (needed for script execution).
- Fork the repository to your GitHub account.
- Then clone your fork locally:
git clone https://github.com/YOUR_USERNAME/memoryblock.git cd memoryblock
We provide a setup script that cleans previous builds, installs dependencies, lints, and verifies the build integrity for you:
pnpm dev:prepDuring development, you don't need to link the package. You can execute the local dev build directly using the monorepo-bound script:
# General CLI Command structure
pnpm mblk <command>
# Examples:
pnpm mblk start
pnpm mblk create
pnpm mblk create agentThis runs the script using Bun referencing your local edits in real time!
memoryblock is structured for modularity to keep resources separated and lightweight:
packages/
├── memoryblock/ # CLI orchestrator and `mblk` command wrapper
├── core/ # Engine runtime, Memory Manger, Monitor loop
├── types/ # Shared TypeScript definitions and Zod schemas
├── daemon/ # Background process spawner and lifecycle host
├── adapters/ # LLM models (OpenAI, Gemini, Anthropic, Bedrock)
├── channels/ # Communication channels (Telegram, CLI, Web)
├── plugins/ # Extension plugins (installer, agents, web-search)
├── tools/ # Core sandbox schemas and OS tool execution
├── api/ # HTTP API routing server
├── locale/ # Translation and formatting core
└── web/ # User Interface static files / Dashboard
scripts/ # Clean setup, verification and maintenance logic
- Create a Branch: Always create a new branch for your changes.
feat/my-new-featurefix/bug-description
- Make Changes: Write clear, concise code.
- Validate locally:
- Run
pnpm dev:verifyto run failsafe checks. - Run
pnpm dev:lintto ensure consistency.
- Run
- Commit: We prefer Conventional Commits.
feat: add webhooks dashboardfix: resolve api token sync error
- Push & Open PR: Push your branch and open a Pull Request against the
mainbranch.
- Linting: Please ensure your code follows the workspace standard. Run
pnpm dev:lint:fixto fix any issues. - Compatibility: MemoryBlock aims to be highly resource-efficient. Avoid adding bulky dependencies.
Please note that this project is released with a Contributor Code of Conduct. By participating you agree to abide by its terms.