{"id":26457132,"url":"https://github.com/kamillobinski/thock","last_synced_at":"2026-01-19T21:53:38.854Z","repository":{"id":281294814,"uuid":"944219093","full_name":"kamillobinski/thock","owner":"kamillobinski","description":"THOCK your mac keyboard","archived":false,"fork":false,"pushed_at":"2026-01-15T20:28:10.000Z","size":52499,"stargazers_count":416,"open_issues_count":11,"forks_count":19,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-17T05:09:53.188Z","etag":null,"topics":["desktop","keyboard","keyboard-sounds","macos","sounds","swift","thock"],"latest_commit_sha":null,"homepage":"https://discord.gg/sGVaUxgfJx","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kamillobinski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-07T01:26:43.000Z","updated_at":"2026-01-16T13:54:27.000Z","dependencies_parsed_at":"2025-07-26T00:24:40.182Z","dependency_job_id":"e4dafd62-1c96-40c7-905a-e3d2c6a1b760","html_url":"https://github.com/kamillobinski/thock","commit_stats":null,"previous_names":["kamillobinski/tapp","kamillobinski/thock"],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/kamillobinski/thock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamillobinski%2Fthock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamillobinski%2Fthock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamillobinski%2Fthock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamillobinski%2Fthock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kamillobinski","download_url":"https://codeload.github.com/kamillobinski/thock/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamillobinski%2Fthock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28586464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T20:45:59.482Z","status":"ssl_error","status_checked_at":"2026-01-19T20:45:41.500Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop","keyboard","keyboard-sounds","macos","sounds","swift","thock"],"created_at":"2025-03-18T22:42:30.423Z","updated_at":"2026-01-19T21:53:38.808Z","avatar_url":"https://github.com/kamillobinski.png","language":"Swift","funding_links":[],"categories":["Swift"],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/readme/icon.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003ch3 align=\"center\"\u003eThock\u003c/h3\u003e\n  \u003cp align=\"center\"\u003e\n    A native macOS utility that adds sound effects to your keyboard.\n    \u003cbr /\u003eBlazing fast, lightweight and runs in the menu bar.\n    \u003cbr /\u003e\u003cbr /\u003e\n    \u003ca href=\"https://github.com/kamillobinski/thock/releases/latest\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/v/release/kamillobinski/thock?style=rounded\u0026color=white\u0026labelColor=000000\u0026label=release\" alt=\"Release Version\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n      \u003cimg alt=\"GitHub Downloads\" src=\"https://img.shields.io/github/downloads/kamillobinski/thock/total?style=rounded\u0026color=white\u0026labelColor=000000\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://deepwiki.com/kamillobinski/thock\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n      \u003cimg src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#custom-engine\"\u003eCustom Engine\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#sound-library\"\u003eSound Library\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#smart-integration\"\u003eSmart Integration\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#advanced-control\"\u003eAdvanced Control\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#translation\"\u003eTranslation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n![banner](docs/readme/banner.png)\n\nThock is a high-performance utility designed to bring the tactile satisfaction of mechanical switches to your macOS workspace. Built natively in Swift, it bridges the gap between hardware feel and software execution with zero compromises on speed or privacy.\n\nStarted this project to challenge the status quo. While paid alternatives exist, Thock is built on the belief that the best tools should be open-source and community-driven. By focusing on a custom low-latency engine and deep system integration, Thock offers a professional-grade typing experience that stays out of your way and keeps your flow state intact.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- FEATURES --\u003e\n## Features\n\n\u003cdetails\u003e\n\u003csummary\u003eQuick Overview (if you don't feel like scrolling today)\u003c/summary\u003e\n\u003cbr/\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth width=\"300px\"\u003eFeature\u003c/th\u003e\n      \u003cth width=\"700px\"\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cb\u003eCustom Engine\u003c/b\u003e\u003c/td\u003e\n      \u003ctd\u003eNative AudioQueue APIs achieving ultra-low latency for perfectly synced feedback.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cb\u003eSound Library\u003c/b\u003e\u003c/td\u003e\n      \u003ctd\u003eExtensible JSON-based architecture to import or create custom switch profiles.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cb\u003eSmart Integration\u003c/b\u003e\u003c/td\u003e\n      \u003ctd\u003eMusic awareness that automatically mutes audio during playback.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cb\u003eAdvanced Control\u003c/b\u003e\u003c/td\u003e\n      \u003ctd\u003eHands-on-keys management via Raycast extension and dedicated CLI.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cb\u003eTranslation\u003c/b\u003e\u003c/td\u003e\n      \u003ctd\u003eFully localized interface for English, 日本語, and 中文 users.\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/details\u003e\n\n\n\n![custom-engine](docs/readme/custom-engine.png)\n\n### Custom Engine\n\nFeatures a custom audio engine built on native macOS AudioQueue APIs, achieving ultra-low latency that feels instantaneous. By bypassing standard high-level processing layers, we have eliminated perceptual lag to provide perfectly synced auditory feedback.\n\nWhether you are a high-speed programmer or a creative writer, Thock ensures every keystroke is met with organic, realtime sound that keeps pace with your fastest workflow.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n![sound-library](docs/readme/sound-library.png)\n\n### Sound Library\n\nBuilt to be an open platform. While the app comes pre-loaded with high-quality recordings, you aren't limited to the defaults.\n\nWith support for custom sound packs, you can easily import new switch profiles or create your own using a simple JSON structure. Whether you want the heavy 'thock' of a vintage board or a completely unique experimental soundscape, you can expand your library to suit your specific taste. Drop your folder into the directory and switch profiles instantly.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n![smart-integration](docs/readme/smart-integration.png)\n\n### Smart Integration\n\nWith music awareness, Thock intelligently manages your soundscape so you never have to manually toggle settings. By detecting active playback from apps like Spotify or Apple Music, it automatically mutes its typing sounds to let your music take priority.\n\nAs soon as the music stops, the app instantly resumes your mechanical feedback. It's a seamless, 'set-and-forget' feature designed for deep work sessions where your focus shifts between rhythm of your keys and the rhythm of your playlist.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n![advanced-control](docs/readme/advanced-control.png)\n\n### Advanced Control\n\nBuilt for power users, Thock extends beyond the menu bar with its own Raycast Extension and a dedicated CLI. This integration allows you to toggle the audio engine and switch sound packs entirely via the command bar.\n\nBy exposing every core function to the system, Thock fits seamlessly into your automation workflows and productivity scripts. Whether you're using Raycast, Alfred, or the terminal, you have total control over your typing environment without ever lifting your hands.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n![translation](docs/readme/translation.png)\n\n### Translation\n\nWith localization, Thock bridges the gap between powerful functionality and effortless usability. The interface is fully translated into English, 日本語 (Japanese) and 中文 (Chinese), allowing users to navigate the ecosystem without language barriers.\n\nSelect your preferred language in the general settings to enjoy a workspace tailored to your needs.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\nIt's quick and easy. You can either download a prebuilt release or build it yourself if you prefer.\n\n\u003e [!WARNING]  \n\u003e Thock requires macOS 13.5 Ventura or later.\n\n### `A` Homebrew Cask Installation (recommended)\n\n```sh\nbrew tap kamillobinski/thock\nbrew install --cask thock\n```\n\nor one command:\n```sh\nbrew install --cask kamillobinski/thock/thock\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eB\u003c/b\u003e: Release Download\u003c/summary\u003e\n\n1. Go to the [latest release](https://github.com/kamillobinski/thock/releases/latest)\n2. Download `Thock-x.y.z.zip`\n3. Unpack the ZIP file\n4. Move the app to your Applications folder for easy access\n5. Open Thock\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eC\u003c/b\u003e: Build From Source\u003c/summary\u003e\n\n1. Clone the repository\n   ```sh\n   git clone https://github.com/kamillobinski/thock.git\n   cd thock\n   ```\n\n2. Open in Xcode\n   ```sh\n   open Thock.xcodeproj\n   ```\n\n3. Build and run the application\n\n\u003c/details\u003e\n   \n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nGot an idea or want to improve something? Awesome!\n\nCheck out the [contributing guide](./docs/CONTRIBUTING.md) for everything you need to know.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\nThanks to the folks that helped make this project a reality!\n\n**Community Contribution**\n\n- [@Kaedeeeeeeeeee](https://github.com/Kaedeeeeeeeeee) - Developed the dynamic localization system and provided the initial Japanese \u0026 Chinese language support.\n- [@distantorigin](https://github.com/distantorigin) - Fixed menu bar accessibility to ensure the app is fully responsive when using VoiceOver.\n- [@SouhailBlmn](https://github.com/SouhailBlmn) - Volume persistence across output devices, global shortcut to toggle the app\n- [@shailantani](https://github.com/shailantani) - Raycast extension ([source code](https://github.com/raycast/extensions/tree/main/extensions/thock))\n- [@qalonbudker](https://github.com/qalonbudker) - Pitch variation for key sounds\n- [@zenangst](https://github.com/zenangst) - Event handling, mode saving, perf improvements\n- [@iamsoum](https://github.com/iamsoum) - Updated the sound pack conversion instructions for improved clarity and step-by-step guidance\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n[Swift-url]: https://img.shields.io/badge/swift-%23FA7343.svg?style=for-the-badge\u0026logo=swift\u0026logoColor=white\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamillobinski%2Fthock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkamillobinski%2Fthock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamillobinski%2Fthock/lists"}