Why Contribute?
Make an Impact
Help build, test, and improve a tool used by thousands to boost productivity and extend their capabilities with AI.
Learn & Grow
Work on cutting-edge AI, LLMs, semantic search, and modern web technologies while collaborating with experienced developers.
Join the Community
Connect with developers, designers, and AI enthusiasts who share your passion for building better tools.
Shape the Future
Influence the direction of an open-source personal AI platform that’s always evolving.
Getting Started
Join the Discord Community
Join our Discord server and click the ✅ for the question “Are you interested in becoming a contributor?” in the
#welcome-and-rules channel. This gives you access to the #contributors channel where you can ask questions and get help.Read the Contributing Guide
Familiarize yourself with the official GitHub docs on contributing to an open-source project.
Find Your First Issue
Browse GitHub Issues with the
good first issue tag to find beginner-friendly tasks. These are carefully selected to help new contributors get started.Set Up Your Development Environment
Follow our Development Setup Guide to get Khoj running locally on your machine.
Ways to Contribute
Code Contributions
- New Features: Implement new capabilities and extend Khoj’s functionality
- Bug Fixes: Identify and fix issues in the codebase
- Performance Improvements: Optimize existing code for better speed and efficiency
- Refactoring: Improve code quality, readability, and maintainability
- Testing: Add unit tests, integration tests, and improve test coverage
Non-Code Contributions
- Documentation: Improve guides, fix typos, add examples, or create tutorials
- Design: Contribute UI/UX improvements, icons, or visual assets
- Bug Reports: Report issues with detailed reproduction steps
- Feature Requests: Propose new features and improvements
- Community Support: Help other users in Discord, GitHub discussions, or forums
- Translations: Help make Khoj accessible in more languages
Technology Stack
Backend
- Python 3.10-3.12: Core application logic
- FastAPI: Modern web framework
- Django: Database ORM and admin interface
- PostgreSQL + pgvector: Database with vector embeddings
- PyTorch: Machine learning framework
- Sentence Transformers: Text embeddings
Frontend
- Next.js 14: React framework with SSR
- TypeScript: Type-safe JavaScript
- Tailwind CSS: Utility-first styling
- Radix UI: Accessible component primitives
- Bun: Fast JavaScript runtime and package manager
Clients
- Obsidian Plugin: TypeScript/JavaScript
- Emacs Package: Emacs Lisp
- Desktop App: Electron (TypeScript)
- Android App: Kotlin
Infrastructure
- Docker: Containerization
- GitHub Actions: CI/CD pipelines
- pytest: Testing framework
- pre-commit: Code quality hooks
Contribution Workflow
Discuss First
Before starting work on a significant change, create or comment on a GitHub issue to discuss your approach. Tag a maintainer to get feedback. This helps ensure your PR aligns with project goals and gets merged faster.
Fork and Branch
Fork the repository and create a feature branch from
master. Use descriptive branch names like feature/add-search-filters or fix/memory-leak.Make Changes
Write clean, well-documented code following the project’s style guidelines. Add tests for new functionality.
Test Locally
Run the test suite and linter to ensure your changes don’t break existing functionality:
Create Pull Request
Submit a PR with a clear title and description. Link to the related issue and explain what your changes do and why.
Code of Conduct
We’re committed to providing a welcoming and inclusive environment. Be respectful, constructive, and collaborative. Harassment, discrimination, or any form of negative behavior won’t be tolerated.
Community Guidelines
- Be Respectful: Treat others with kindness and empathy
- Be Constructive: Provide helpful feedback and suggestions
- Be Patient: Remember that everyone is learning and growing
- Be Collaborative: Work together to solve problems
- Be Open-Minded: Consider different perspectives and approaches
Maintainer Response Times
- Critical bugs: Within 24-48 hours
- Feature requests: Within 1 week
- Pull request reviews: Within 1-2 weeks
- Community questions: Within 2-3 days
Response times may vary based on maintainer availability and project workload. We appreciate your patience!
Recognition
All contributors are recognized in our:- GitHub Contributors Graph
- Release notes for significant contributions
- Community shoutouts in Discord
Ready to Contribute?
Head over to the Development Setup Guide to get started with setting up your local environment!
Additional Resources
Development Setup
Complete guide to setting up Khoj locally
Architecture
Understand Khoj’s system design and structure
Performance
Learn about optimization and benchmarking
GitHub Issues
Find issues to work on
