-
Notifications
You must be signed in to change notification settings - Fork 532
Developer Guide
Learn how to set up Hyprnote for development and contribute to the project.
Hyprnote uses Taskfile for most development tasks. See **/Taskfile.yaml for available commands.
Before setting up Hyprnote, ensure you have the following installed:
Install the required system dependencies via Homebrew:
brew install cmake pkg-configInstall Rust if you haven't already:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shClone the repository and install dependencies:
git clone https://github.com/fastrepl/hyprnote.git
cd hyprnote
pnpm installBuild the UI package before running the desktop app:
pnpm -F ui buildWhen running Hyprnote in development mode, macOS requires you to grant permissions to the terminal application you're using to build and run the app (e.g., Terminal, iTerm2, VS Code, Warp). This is different from the production app, where permissions are granted directly to Hyprnote.
Go to System Settings > Privacy & Security and grant the following permissions to your terminal application:
Microphone: Required for audio capture during development. Without this, the app won't be able to record from your microphone.
Accessibility: Required for certain system-level features. Your terminal needs accessibility access to allow the development build to interact with system APIs.
If you're using VS Code's integrated terminal, you'll need to grant these permissions to Visual Studio Code. For standalone terminals like iTerm2 or the default Terminal app, grant permissions to those applications instead.
After granting permissions, you may need to restart your terminal or IDE for the changes to take effect.
For Ubuntu-based distributions, run the setup script:
bash scripts/setup-linux.shThis script installs all required system dependencies including GTK, PulseAudio, and Tauri prerequisites. It also installs development tools like dprint, Taskfile, and Supabase CLI.
After running the setup script, clone the repository and install dependencies:
git clone https://github.com/fastrepl/hyprnote.git
cd hyprnote
pnpm installWe use pnpm for workspace management and package management.
npx turbo -F @hypr/desktop tauri:devor
pnpm -F ui build && pnpm -F desktop tauri devpnpm -F web devpnpm -F api devReference: https://supabase.com/docs/guides/local-development/cli/getting-started
task supabase-start
task supabase-stop-
task supabase-startwill modifyapps/api/.envandapps/web/.envbased on the output ofsupabase start. - We generate
supabase/config.tomldynamically based on the environment variables, and it isgitignored. - Currently,
GITHUB_CLIENT_SECRETandGITHUB_CLIENT_IDis supported to enableGitHub OAuth. - It is important to set
<SUPABASE_URL>/auth/v1/callbackas redirect URI in your OAuth application settings.
Stripe CLI: https://docs.stripe.com/stripe-cli/install
task stripe-
task stripewill modifyapps/api/.envbased on the output ofstripe listen.
- See Extensions to learn how to build custom extensions
- Check out the Company Handbook to understand our values and how we work
- Visit our GitHub for the full codebase