Amical is a free, open source input & dictation project written in TypeScript and released under MIT. It has 1,531 GitHub stars, 141 forks and 58 open issues, and was last pushed 2 days ago. On this registry it ranks #4 of 6 tracked projects in Input & Dictation, with 5 head-to-head comparisons available. It gained 3 stars over the last 6 tracked days.

What is Amical?

What it is

Amical is an open-source, local-first AI dictation and note-taking app for desktop use. It lives in the Electron, TypeScript, Whisper, and Ollama ecosystem, and it is positioned as an input and productivity tool for people who want to speak instead of typing. The project is MIT licensed and written in TypeScript.

The problem it addresses is keyboard-heavy text entry across everyday applications. Amical runs on the user's machine, uses Whisper for speech-to-text, and uses open-source LLMs for intelligent processing. It detects the active app and formats spoken input for contexts such as drafting an email, chatting on Discord, writing prompts in an IDE, or messaging friends.

Key capabilities

  • Uses Whisper for speech-to-text and open-source LLMs, with Ollama in the tech stack, for post-processing dictated text.
  • Provides context-aware dictation that detects the active app and formats spoken input for that context.
  • Includes a floating widget with custom hotkeys for starting and stopping dictation.
  • Supports extensibility through hotkeys, voice macros, and custom workflows.
  • Can work offline and offers one-click setup of local models in the app.

Who uses it and how

  • macOS users install through Homebrew and use it as a desktop dictation tool.
  • Developers run the desktop app from source on macOS or Windows after compiling the native Whisper addon and installing required build tools.
  • Users dictate into email, Discord, IDE prompts, and messaging apps while Amical formats output for the active context.
  • Users needing local processing complete first-run onboarding, download a local model, and grant microphone and operating-system permissions.
  • Users control the workflow through the floating widget and custom hotkeys.

Getting started

macOS installs with brew install --cask amical. Local development requires Node.js 24.x, pnpm 10.15.0, and CMake 3.20 or later, then uses pnpm install --frozen-lockfile and pnpm turbo run dev --filter=@amical/desktop.

When to use it — and when not to

Amical fits users who want local, keyboard-free dictation on macOS or Windows and accept a young project with 0 contributors, 58 open issues, and several capabilities still in progress or planned. It is not suitable for Linux users yet, because the README states the desktop app lacks a Linux native helper, and macOS local Whisper transcription requires macOS 15 or later. Self-hosting mainly means installing the app, downloading a local model, and granting microphone permissions; optional cloud, authentication, or telemetry integrations require configuring apps/desktop/.env from apps/desktop/.env.example.

project readme (upstream, from github) — read inline
Amical

PRs Welcome license
discord

Website - Docs - Community - Bug reports

Table of Contents

⬇️ Download

Download for macOS Download for Windows Get it on Google Play Apply for iOS Beta

Homebrew (macOS)

brew install --cask amical

🔮 Overview

Local-first AI Dictation app.

Amical is an open source AI-powered dictation and note-taking app that runs entirely on your machine. Powered by Whisper for speech-to-text and open source LLMs for intelligent processing, Amical gives you the power of AI dictation with complete privacy.

Context-aware dictation that adapts to what you're doing: drafting an email, chatting on Discord, writing prompts in your IDE, or messaging friends. Amical detects the active app and formats your speech accordingly.

Amical dictation demo

✨ Features

✔︎ - Done, ◑ - In Progress, ◯ - Planned

🚀 Super-fast dictation with AI-enhanced accuracy ✔︎

🧠 Context-aware speech-to-text based on the active app ✔︎

📒 Smart voice notes → summaries, tasks, structured notes ◑

🔌 MCP integration → voice commands that control your apps ◯

🎙️ Real-time meeting transcription (mic + system audio) ◯

🔧 Extensible via hotkeys, voice macros, custom workflows ✔︎

🔐 Privacy-first: works offline, one click setup of local models in-app ✔︎

🪟 Floating widget for frictionless start/stop with custom hotkeys ✔︎

🔰 Tech Stack

Local Development

These steps run the desktop app, which currently supports macOS and Windows. Linux is not supported because the app does not yet have a Linux native helper.

Prerequisites

  • Node.js 24.x
  • pnpm 10.15.0 (the version pinned in package.json)
  • CMake 3.20 or later
  • macOS: Xcode or the Xcode Command Line Tools with Swift 5.9 or later (xcode-select --install). Local Whisper transcription requires macOS 15 or later.
  • Windows: Visual Studio 2022 Build Tools with the Desktop development with C++ workload, plus the .NET 8 SDK. Git Bash is recommended because some development scripts use POSIX utilities.

Set up the repository

Clone with submodules so the Whisper sources are available:

git clone --recurse-submodules https://github.com/amicalhq/amical.git
cd amical

If you already cloned without --recurse-submodules, initialize them now:

git submodule update --init --recursive

Enable Corepack so it uses the pinned pnpm version, install dependencies, and download the Node.js binary used by the local Whisper worker:

corepack enable
pnpm install --frozen-lockfile
pnpm --filter @amical/desktop download-node

pnpm install compiles the native Whisper addon, so it can take a few minutes. It also applies the repository's patches inside the whisper.cpp submodule. Seeing that submodule marked as modified in git status afterward is expected.

Start the desktop app

Quit any installed copy of Amical first; Electron allows only one Amical instance at a time. Then run:

pnpm turbo run dev --filter=@amical/desktop

When finished, quit the development app from its tray menu and then press Ctrl+C. Stopping the terminal command alone may leave the Electron app running.

No .env file is required for local transcription. The first-run onboarding downloads a local model and requests the required microphone and OS permissions. Only configure apps/desktop/.env from apps/desktop/.env.example when working on optional cloud, authentication, or telemetry integrations, and replace its placeholder values before use.

Run checks

Before opening a pull request, run:

pnpm type:check
pnpm test

🤗 Contributing

Contributions are welcome! Reach out to the team in our Discord server to learn more.

🎗 License

Released under MIT.

Frequently asked questions

Is Amical free to use?

Amical is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Amical do?

Type 10x faster with AI-powered voice dictation

What is Amical written in?

Amical is primarily written in TypeScript. Its source is publicly available at https://github.com/amicalhq/amical, and it has 1,531 GitHub stars.