Contributing

How to contribute to RA-OS

Contributing to RA-OS

RA-OS is open source and welcomes contributions. Whether you're fixing bugs, adding features, or improving documentation, we appreciate your help.

Getting Started

1. Fork the Repository

Click the "Fork" button on GitHub to create your own copy.

2. Clone Your Fork

git clone https://github.com/YOUR-USERNAME/ra-h_os.git
cd ra-h_os

3. Set Up Development Environment

npm install
cp .env.example .env.local
# Add your API keys to .env.local
npm run dev

4. Create a Branch

git checkout -b feature/your-feature-name

Project Structure

ra-h_os/
├── app/                  # Next.js App Router pages and API routes
├── src/
│   ├── components/       # React UI components
│   ├── services/         # Database, embedding, backend logic
│   ├── tools/            # AI agent tools
│   ├── config/           # Prompts, guides, runtime config
│   └── types/            # TypeScript type definitions
├── apps/
│   └── mcp-server/       # MCP server (HTTP + STDIO)
└── docs/                 # Internal documentation

Key Technologies

  • Next.js 15 — App Router, React Server Components
  • TypeScript — Strict mode enabled
  • Tailwind CSS — Utility-first styling
  • SQLite + sqlite-vec — Local database with vector search
  • AI SDK — Vercel's AI SDK for LLM integration

Code Style

  • Use TypeScript strict mode
  • Follow the existing code patterns
  • Use meaningful variable and function names
  • Add comments for complex logic

Making Changes

Bug Fixes

  1. Create an issue describing the bug
  2. Reference the issue in your PR
  3. Include steps to reproduce
  4. Add tests if applicable

New Features

  1. Open an issue to discuss the feature first
  2. Get feedback before implementing
  3. Keep changes focused and minimal
  4. Update documentation as needed

Documentation

Documentation improvements are always welcome:

  • Fix typos and clarify confusing sections
  • Add examples and use cases
  • Improve code comments

Submitting a Pull Request

1. Commit Your Changes

git add .
git commit -m "feat: add new feature description"

Follow Conventional Commits:

  • feat: — New feature
  • fix: — Bug fix
  • docs: — Documentation only
  • refactor: — Code change that neither fixes a bug nor adds a feature
  • test: — Adding or updating tests

2. Push to Your Fork

git push origin feature/your-feature-name

3. Open a Pull Request

Go to the original repository and click "New Pull Request". Select your branch and describe your changes.

PR Checklist

  • Code follows existing style
  • TypeScript types are correct (npm run type-check)
  • Changes are documented
  • PR description explains the change
  • Related issues are linked

Getting Help

License

RA-OS is MIT licensed. By contributing, you agree that your contributions will be licensed under the same license.