Freestyle: a desktop dictation and reminder app built from a pnpm monorepo
Project brief: Open source voice dictation platform for devs. Build voice workflows.
At a glance
- What is it?
- Freestyle combines hold-to-talk dictation with scheduled checks against connected apps, and runs on macOS, Windows and Linux. The README documents the features and the download links; it does not document self-hosting or rollback.
- Who is it for?
- Adopt Freestyle if you want dictation and standing checks on connected apps inside one desktop client, and you are willing to install a signed release rather than run a server. Do not adopt it if you need a self-hosted service, a documented rollback path, or mobile support today, since the README states iOS and Android are coming soon.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 12 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Freestyle solves, and who it is aimed at
Freestyle is a desktop application that watches things on your behalf. The README describes it as an "intelligent reminders app" that lives on your desktop: you tell it what matters, connect the apps where that information lives, and it checks on a timer you set. When something crosses a line, you get one desktop notification rather than a feed to scroll. The examples in the README are concrete: an invoice three weeks overdue, a pull request nobody has reviewed, a flight credit expiring on Friday.
The second half of the product is the writing tool. Hold a hotkey, speak, and release to paste text at the cursor. Highlight a paragraph and describe the change you want instead. The README names Google Docs, Slack, VS Code and Gmail as places this works, and adds "anywhere else you type".
The audience is developers and knowledge workers who already keep their work in Gmail, GitHub, Slack, Notion, Google Drive or Sheets. The README lists those as connected apps out of the box, plus roughly 1,200 more tools through MCP. If your work does not live in those places, the scheduled-check half of the product has less to look at.
How the reminder loop and the approval step work
A scheduled task is a standing job. The README gives the shape of one: "Every morning, look at my repo and tell me about open issues" or "Tell me when a deal goes quiet for five days". Each job runs on a timer you set. The job reads from connected apps to check the condition you described. That is the read path, and it runs without asking you first.
The write path is gated. The README is explicit that anything Freestyle wants to send, post or buy is shown to you first, and only happens when you press Allow. The approval screen shows what would happen and where. Sending an email, posting to Slack, booking time and buying something all stop at that step. This is the design decision that separates Freestyle from an agent that acts and reports afterwards.
State lives in three places the README names. Todos and plain-text notes track what you care about; Freestyle checks items off when it sees they are finished. Brain is a memory of what you have told it, kept as plain text you can read, edit and delete. Connected apps hold the underlying data. The repository layout backs this up: apps/, packages/, plugins/ and specs/ sit alongside DESIGN.md and ROADMAP.md, so the architecture is documented in-tree rather than only on the website.
Installing Freestyle from a release build
The README points at GitHub releases for every platform. There is no package manager install and no server component described. Pick the artefact for your machine and run it.
# macOS (Apple Silicon or Intel): download the .dmg from the latest release
# Windows: download the .exe
# Linux: download the .AppImage or the .debAfter launching, the first real use is dictation, because it needs no connected account. The README describes the gesture as hold the hotkey, speak, release to paste. Try it in a text editor before wiring up anything else, and confirm that the pasted text lands at your cursor.
The second step is a scheduled task. The README's own example is the shortest path to something useful:
Every morning, look at my repo and tell me about open issues.That requires connecting GitHub first. Connect an app once, per the README, and Freestyle can read from it for the checks you asked about. Writes only happen through an action you approve, so connecting GitHub does not by itself grant posting rights.
Building from source with pnpm and Node 22
The README does not carry build instructions; it defers to CONTRIBUTING.md for setup, local development and opening a pull request. What the root package.json does tell you is the shape of the workspace. It is a private pnpm workspace named @freestyle-voice/workspace, pinned to [email protected], with an engines field requiring Node 22 or newer. Turbo drives the tasks.
corepack enable
pnpm install
pnpm devThe build script filters out the docs package, and there is a separate dev:docs script for it. Mobile has its own entry points, dev:ios and dev:android, filtered to @freestyle-voice/mobile, which matches the README's note that mobile support is coming soon. Formatting and linting go through Biome, with a husky pre-commit hook that runs biome check --write on staged TypeScript, JavaScript and JSON files. Knip is present for unused-code detection.
One practical consequence of the engines field: if your machine is on Node 20, install will not behave as the workspace expects. The README does not mention this because the README does not cover building at all.
Where Freestyle is the wrong tool
Freestyle is a desktop client, not a service you host. The README offers no self-hosting path, no Docker image and no server deployment instructions, and the download table is the only installation route it documents. A team that needs dictation or reminders running on a shared server, or behind a corporate network without desktop installs, has nothing to work with here.
The approval model is also a deliberate constraint. Every send, post, booking and purchase waits for a human to press Allow. That is the right default for an agent with write access to your email and Slack. It is the wrong default if you wanted unattended automation that fires while you are asleep. Freestyle will not do that, by design.
Mobile is stated as not available. The README says iOS and Android support is coming soon, and the repository has mobile scripts, but the download table lists only macOS, Windows and Linux. Anyone whose dictation happens on a phone should wait.
Finally, the README does not document rollback, downgrade, or what happens to your Brain and notes if you uninstall. The Brain is plain text you can read and edit, which helps, but the README is silent on backup and migration between versions. Treat that as an open question rather than a solved one.
Freestyle against a plain dictation tool
The obvious comparison is a dedicated dictation utility: hold a key, speak, get text. Freestyle does that, and the README treats it as one feature among several rather than the whole product. The difference is what happens when you are not speaking. A dictation-only tool has no opinion about your GitHub issues or your overdue invoices, and it holds no memory of what you told it last week.
Freestyle's Brain is the second difference. It keeps a plain-text memory that persists across conversations, so a fact you state once is available later. A stateless dictation tool starts from nothing every time. The trade-off is that Freestyle now holds a file about you, and the README's answer is that it is plain text you can read, edit and delete, not a black box.
The third difference is reach. Roughly 1,200 tools through MCP, plus Gmail, Google Calendar, Slack, GitHub, Notion, Google Drive and Sheets out of the box, means the reminder half can look at systems a dictation tool never touches. That breadth is also the cost: more connected accounts, more approval prompts, and more surface where a misconfigured check produces noise instead of signal.
Licence, release cadence and upgrade cost
Freestyle is MIT licensed, and the LICENSE file sits at the repository root. MIT is permissive: you can use, modify and redistribute the code, including in closed products, provided the copyright notice and permission notice travel with it. That is a description of the licence text, not legal advice; if you plan to redistribute a modified build, read LICENSE and, where it matters, talk to a lawyer.
The release history is dense. Versions 0.8.7, 0.8.8 and 0.8.9 all landed within about eight days in August 2026, and the last push to main was on 2026-08-27. Frequent point releases at the 0.8 line usually mean the surface is still moving, so pin the version you deploy and read CHANGELOG.md before upgrading rather than taking whatever the latest release is.
Upgrade cost is low for end users, since the README's install path is a downloaded artefact you replace. It is higher for anyone building from source: [email protected], Node 22 or newer, Turbo, Biome and husky all have to line up, and the mobile targets add their own toolchains. Budget for that if you intend to track main rather than consume releases.
Editorial conclusion
Adopt Freestyle if you want dictation and standing checks on connected apps inside one desktop client, and you are willing to install a signed release rather than run a server. Do not adopt it if you need a self-hosted service, a documented rollback path, or mobile support today, since the README states iOS and Android are coming soon. Before committing, verify the release artefact for your platform, confirm your Node version satisfies the engines field if you build from source, and read CONTRIBUTING.md for the local development setup the README only points to.
Frequently asked questions
What is Freestyle by freestyle-voice?
It is an open source desktop app that combines voice dictation with scheduled reminders. You connect apps such as Gmail, GitHub or Slack, describe what you want watched, and Freestyle checks on a timer and notifies you when something crosses a line. Anything it wants to send or buy is shown for approval first.
How do I install Freestyle on macOS, Windows or Linux?
The README's download table points at GitHub releases: a .dmg for macOS on Apple Silicon and Intel, a .exe for Windows, and either a .AppImage or a .deb for Linux. There is no package manager install and no server deployment described.
Does Freestyle require a specific Node version to build from source?
Yes. The root package.json sets an engines field of node >=22 and pins the package manager to [email protected]. The README itself does not cover building and defers to CONTRIBUTING.md for setup and local development.
Is there a mobile version of Freestyle?
Not yet. The README states that mobile support on iOS and Android is coming soon, and the download table lists only macOS, Windows and Linux. The repository does contain dev:ios and dev:android scripts filtered to the mobile package.
What can Freestyle do without asking me first?
It reads from connected apps to run the checks you set up. Sending an email, posting to Slack, booking time or buying something stops at an approval step that shows what would happen and where, and only proceeds when you press Allow.
What licence is Freestyle released under?
MIT. The LICENSE file is at the repository root, and the README's licence section links to it.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/freestyle-voice-freestyle)