Three Ways to Contribute
There are three ways to contribute to Wolffish:Code
TypeScript — fix bugs, add features, improve the runtime.
Capabilities
SKILL.md + optional plugin — teach Wolffish new things.
Documentation
MDX pages — improve or translate the docs.
Code Contributions
Workflow
- Fork the repo and clone your fork
- Create a feature branch:
- Make your changes
- Verify:
- Test frontend changes in the browser (
npm run dev) - Commit with conventional format
- Push and open a PR against
main
Commit Messages
Use Conventional Commits:feat, fix, refactor, docs, chore, test
Code Conventions
No comments unless the WHY is non-obvious
No comments unless the WHY is non-obvious
Code should be self-documenting. If you need a comment, explain WHY, not WHAT.
No over-abstraction
No over-abstraction
Don’t create abstractions until you have three concrete uses. A bug fix is a bug fix — don’t refactor the world around it.
No unnecessary dependencies
No unnecessary dependencies
Before adding a package, check if the standard library or existing deps already cover it. Wolffish uses
fetch() directly instead of Axios, mitt instead of EventEmitter3, etc.IPC is the ONLY main-renderer channel
IPC is the ONLY main-renderer channel
Never import from
@main/* in renderer code. All communication goes through IPC channels defined in the preload layer.Never write outside ~/.wolffish/
Never write outside ~/.wolffish/
The app’s entire footprint lives in
~/.wolffish/. Never write to Desktop, Documents, temp directories, or anywhere else. If a feature needs storage, put it inside the workspace.Capability Contributions
Capabilities are the easiest way to extend Wolffish without touching core code.Creating a Capability
-
Create a folder in
src/defaults/workspace/brain/cerebellum/: -
Write
SKILL.mdwith proper frontmatter: - Test with cloud models (DeepSeek, Claude, GPT) and local models (Ollama) — behavior should be consistent.
Sharing Capabilities
Capabilities can also live in standalone repos. Users clone them directly into their~/.wolffish/workspace/brain/cerebellum/ folder:
Documentation Contributions
Setup
Docs live in thewolffish-docs repo (separate from the app):
Format
- MDX files with Mintlify components (
Card,CardGroup,Note,Tip,Warning,Tabs,Accordion, etc.) - Keep content practical and concise
- Use code blocks extensively
Translations
For every new page atsection/page.mdx, create a corresponding ar/section/page.mdx with the same structure and translated content. Update mint.json navigation for both versions.
Development Setup
Get the dev environment running first.
Adding Brain Modules
Contributing a new runtime module? Read this.