Skip to main content

Always-on terminal audio recorder + local transcription (Whisper)

Project description

huske

CI License: MIT

huske — Norwegian for "to remember"

A terminal app that runs in the background, continuously records your microphone plus your computer's system audio, and transcribes the audio locally with faster-whisper — producing a day-organized, LLM-friendly knowledge base of everything that was said on your machine throughout the day.

Point Claude Code (or any other LLM agent) at ~/huske/transcripts/ and ask it about your day.

~/huske/transcripts/
├── 2026-05-07/
│   ├── 091500_8a3f2c19_001.md
│   ├── 093000_8a3f2c19_002.md
│   └── 094500_8a3f2c19_003.md
└── README.md

Features

  • Continuous capture — mic (sounddevice) + system audio (Apple ScreenCaptureKit), mixed in software, no gaps at chunk boundaries.
  • No drivers, no Audio MIDI Setup — system audio comes through Apple's modern ScreenCaptureKit framework. Just grant Screen Recording permission once.
  • Local transcriptionfaster-whisper, default base model. Audio never leaves your machine.
  • Configurable chunk size — default 15 minutes, anything from 6 s to 60 min.
  • Resilient — graceful stop finalizes the partial chunk; SIGKILL + restart auto-recovers orphaned audio.
  • Pretty terminal UI — Rich Live panel with countdown, mic + system level meters, queue depth, last-saved transcript, rolling event log.
  • LLM-ready output — every transcript is a single Markdown file with full YAML frontmatter; the directory layout is documented in ~/huske/transcripts/README.md (auto-generated).

Requirements

  • macOS 13 (Ventura) or newer. Apple Silicon is the primary target.
  • Python 3.11, 3.12, or 3.13.

Quickstart

# 1. Install
uv tool install huske

# 2. Validate setup (will prompt for Screen Recording permission on first run)
huske doctor

# 3. Record (Ctrl+C to stop)
huske run

# 4. Reclaim orphans from a prior crash without recording
huske recover

Other install options:

# Alternative Python tool installer:
pipx install huske

# macOS Apple Silicon with Homebrew:
brew tap tiagomoraes/huske
brew install huske

On first launch macOS will prompt you to grant Screen Recording permission to your Python interpreter — that's what ScreenCaptureKit needs to capture system audio. After approving once, it's silent forever.

For prerelease builds or exact GitHub tags, install directly from the repository:

uv tool install "git+https://github.com/tiagomoraes/huske.git@v0.1.0"

See quickstart.md for the full setup.

Update notifications

On startup, huske checks PyPI at most once every 24 hours and prints an "update available" banner with the right upgrade command for your install method (uv tool upgrade huske, pipx upgrade huske, or brew upgrade huske). The check runs in a background thread, is silent on network errors, on non-TTY stderr, and for editable installs. Disable it with:

export HUSKE_NO_UPDATE_CHECK=1

Privacy and consent

huske is local-first: audio capture and transcription run on your machine, and the app writes transcripts to your configured filesystem path. That does not make the data low-risk. Recordings, transcripts, logs, filenames, and device metadata can contain private or legally sensitive information.

  • Get consent before recording other people or regulated conversations.
  • Do not commit generated audio, transcripts, logs, local configs, model caches, or screenshots containing private content.
  • Redact huske doctor output before sharing it publicly.
  • Report security or privacy vulnerabilities privately through SECURITY.md.

Documentation

Community

License

huske is released under the MIT License. Third-party notices are in THIRD_PARTY_NOTICES.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

huske-0.2.0.tar.gz (90.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

huske-0.2.0-py3-none-any.whl (44.0 kB view details)

Uploaded Python 3

File details

Details for the file huske-0.2.0.tar.gz.

File metadata

  • Download URL: huske-0.2.0.tar.gz
  • Upload date:
  • Size: 90.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for huske-0.2.0.tar.gz
Algorithm Hash digest
SHA256 78e5e1ccb3dd1e62b6ef1ff50ca9eb6e0744417a03cb4ef94145d5e8b71c40c4
MD5 ad001c9295b9276a43e9ce5d99c82127
BLAKE2b-256 41a168f178c57f76dcc5a2d25427b8c153e364a8c39000fde12f05968e047e25

See more details on using hashes here.

Provenance

The following attestation bundles were made for huske-0.2.0.tar.gz:

Publisher: release.yml on tiagomoraes/huske

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file huske-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: huske-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 44.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for huske-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa8326d3343abe3e21f7fd7437aceb99c469dad41242091dd7cc112b0b722a80
MD5 2325d950f5066c1064a09768d589bd5a
BLAKE2b-256 10008e6a4b280f1b6d76bd19b6d2579d5d7597722368a4acdc2d0eadb12d158a

See more details on using hashes here.

Provenance

The following attestation bundles were made for huske-0.2.0-py3-none-any.whl:

Publisher: release.yml on tiagomoraes/huske

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page