Thank you for your interest in contributing to byteside! This guide will help you get started.
- Report bugs - Open an issue describing what happened and how to reproduce it
- Suggest features - Share ideas for improving byteside
- Submit code - Fix bugs or implement new features
- Create avatars - Design and share custom avatars with the community
- Improve docs - Help make the documentation clearer and more complete
- Bun v1.0 or later
# Clone the repository
git clone https://github.com/YOUR_USERNAME/byteside.git
cd byteside
# Install dependencies
bun install
# Start the development server
bun run dev| Command | Description |
|---|---|
bun run dev |
Start development server with hot reload |
bun run build |
Build for production |
bun run preview |
Preview production build |
bun run test |
Run Vitest tests |
bun run lint |
Run Biome linter |
bun run lint:fix |
Auto-fix lint issues |
byteside/
├── src/ # Shared source code
│ ├── cli.ts # CLI entry point
│ ├── config.ts # Configuration loading
│ ├── hooks.ts # Claude Code hooks management
│ ├── manifest.ts # Avatar manifest validation
│ ├── avatar.ts # Avatar discovery
│ └── types.ts # Type definitions
├── routes/ # Nitro API endpoints
│ ├── state.get.ts # GET /state
│ ├── state.post.ts # POST /state
│ └── _ws.ts # WebSocket handler
├── plugins/ # Nitro plugins
├── public/ # Static files
│ ├── avatars/ # Avatar assets
│ ├── index.html # Browser viewer
│ └── viewer.js # Viewer JavaScript
├── tests/ # Vitest tests
└── docs/ # Documentation
byteside uses Biome for linting and formatting with the following conventions:
- Indentation: Tabs
- Quotes: Double quotes
- Trailing commas: Yes
- TypeScript: Strict mode enabled
- Modules: ESM only (
"type": "module")
Run bun run lint:fix before committing to ensure your code follows the style guide.
- Fork the repository and create a branch from
main - Make your changes and add tests if applicable
- Run the tests -
bun run test - Run the linter -
bun run lint:fix - Commit your changes following the commit message format below
- Open a pull request with a clear description of your changes
We use conventional commits format:
type(scope): short description
Optional longer description explaining the change in more detail.
Types:
feat- New featurefix- Bug fixdocs- Documentation onlystyle- Code style (formatting, etc.)refactor- Code refactoringtest- Adding or updating testschore- Build process, dependencies, etc.
Examples:
feat(cli): add --quiet flag to suppress output
fix(hooks): handle missing settings.json gracefully
docs: update avatar creation guide
Want to create a custom avatar? See the Avatar Creation Guide for a quick start, or the Kling Motion Control Guide for creating assets from scratch using AI tools.
When reporting a bug, please include:
- byteside version - Run
byteside --version - Operating system - macOS, Linux, Windows
- Steps to reproduce - Minimal steps to trigger the bug
- Expected behavior - What should happen
- Actual behavior - What actually happens
- Error messages - Any console output or error messages
By contributing to byteside, you agree that your contributions will be licensed under the MIT License.