Intel's ACAT: the assistive communication toolkit built for Stephen Hawking
Assistive Context-Aware Toolkit (ACAT)
At a glance
- What is it?
- A C# platform for people with restricted speech and typing, developed at Intel Labs, now open sourced and mid migration from XML configuration to JSON with IntelliSense.
- Who is it for?
- ACAT is unusual in the best way: a production system built for a specific person, then released so others could extend it. What makes it tractable as a codebase is that the configuration layer has been doing the hard work of decoupling, moving from XML to JSON with a schema directory and editor support, while the modernization documents describe dependency injection and logging work still ahead.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 171 days ago.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Built for one person, then opened up
The origin story in the README is specific and it explains the design. ACAT was created at Intel Labs for Professor Stephen Hawking, who was instrumental to the design process and a key contributor to the project's design and validation. After the system was deployed to him, Intel turned it toward a wider community and started making it more configurable so it could serve more users.
The stated goal of open sourcing is extension rather than redistribution for its own sake: the invitation is to add new user interfaces, new sensing modalities, language prediction and other features. That framing matters because it tells you what kind of contribution is wanted. The functionality listed as the core is keyboard simulation, word and sentence prediction, and speech synthesis, which are the three things you would build if you were replacing a keyboard for someone who cannot use one.
The project was developed in C# using Visual Studio 2022 and .NET 4.8.1, and it runs on Windows 10 at version 20H2 or higher, and Windows 11. That is a narrow platform target, stated plainly rather than implied, and it is consistent with a system originally built for a Windows desktop with specialist hardware attached.
Cloning needs Git from a terminal, not GitHub Desktop
The README warns that this repository uses Git Large File Storage and includes submodules, and that GitHub Desktop may fail to clone it. The workaround is to use Git from the command line:
$ git clone https://github.com/intel/acat.gitIf this is your first clone, the submodules need initialising:
$ git submodule update --init --recursiveAnd to pull later changes to the submodules along with the main repository:
$ git pull origin master --recurse-submodulesThose three commands are the whole clone procedure, and the note about GitHub Desktop is there because plenty of people will try it first and hit LFS errors. The use of Git LFS plus submodules also tells you something about the payload: there are binary assets and third party components that did not fit comfortably in the repository itself.
Branch policy is stated with unusual clarity. The master branch always contains the most recent release, while the dev branch holds commits towards upcoming releases and is explicitly described as in flux and possibly unstable, with a warning not to clone it.
JSON configuration with schema support, replacing XML
Configuration is the part of ACAT that has been actively reworked, and the direction is clear: JSON everywhere, with editor support. The README lists the key configuration types, starting with `ActuatorSettings` for input devices covering keyboard, camera, brain computer interface and switches, then `Theme` for colour schemes and UI styling, `PanelConfig` for panel layouts such as scanners, keyboards and menus, `Abbreviations` for text expansions, and `Pronunciations` for custom text to speech word pronunciations.
That last one is a nice illustration of the domain. A general purpose text to speech engine will mispronounce a proper noun, and a communication aid for a specific person needs to say that name correctly every time.
The files live in `%APPDATA%\ACAT\Config\` on the target machine, and the README states they support VS Code IntelliSense for editing. That claim is backed by a `schemas/` directory in the repository tree, which is how the editor knows what each key means.
The migration is well documented, with four separate documents listed for it: a user facing JSON configuration guide, a developer guide for extending the configuration system, a quick reference card, and a migration guide for moving from XML to JSON. The tree reinforces how much of the repository is process documentation, with `MIGRATION_SUMMARY.md`, `PHASE2_STATUS_REPORT.md` and `JSON_CONFIGURATION_IMPLEMENTATION.md` sitting at the root next to the code.
What the releases say about where the work is going
The release history has two distinct stories depending on which version you read. Version 3.12, from February 2025, is a performance and packaging release. Its notes cover a refactored and modularised code base, much faster launch times, a fixed first time launch timing issue, a three minute timeout for launching the system, a smaller installer reduced by roughly 500MB, and models that are now downloaded at runtime on first launch instead of being packaged in the setup.
Those notes describe the system as ConvAssist rather than ACAT throughout, which does not match the repository name or the README. If you are evaluating release notes for ACAT specifically, be aware that at least one recent release writes about a differently named system, so treat those details as informative but not clearly about this codebase.
Version 3.13, from May 2025, is a single security change: removing the version upgrade logic and related file from the ACAT applications. That is the kind of release that tells you more than a feature list would.
Version 4.0.0-beta-1 is the forward looking one, and it carries an inconsistency worth flagging: the tag was published on 2026-04-23 while the notes inside it give a release date of December 31, 2025. Its content is substantive. It adds complete language model integration hooks with a localization framework prepared for future expansions and a Spanish example, where the notes are candid that the keyboard and some screens still need localizing and developers are encouraged to help. It adds support for the Unicorn Hybrid Black, a low cost 8 channel wireless EEG headset from GTec, described as requiring no additional custom hardware and as the only headset this release supports. And it introduces a compact dashboard interface mode, a menu driven layout designed to take less screen space so the user can work in other applications at the same time.
A modernization program documented in the open
The root of the repository is unusual for a codebase: most of the visible files are engineering process documents rather than source. `ACAT_MODERNIZATION_PLAN.md` is described as a complete modernization roadmap, `DEPENDENCY_INJECTION_GUIDE.md` covers the dependency injection architecture and how it is implemented, `LOGGING_MIGRATION_GUIDE.md` and `LOGGING_MIGRATION_README.md` cover a logging migration, and `INDEX.md` is a documentation index tying them together.
The testing side is documented to the same degree. `TESTING_INFRASTRUCTURE.md`, `TESTING_MIGRATION_GUIDE.md`, `TESTING_QUICK_REFERENCE.md` and `QUICK_START_INTEGRATION_TESTS.md` sit alongside them, and the README carries build and tests badges from GitHub Actions workflows, so the tests are wired into continuous integration rather than being aspirational.
What that combination tells you is that this is a large legacy codebase being modernized in the open, with the sequencing recorded. Reading the plan document before contributing is more useful than reading the code first, because it tells you which parts are being refactored and which are being left alone.
The last push on the default branch was 2026-04-23, the same date as the 4.0.0 beta tag, so master is currently at a developer preview rather than a finished major version. The repository has 3,227 stars, 613 forks and 22 open issues. The README states the project is distributed under the Apache License, Version 2.0, and includes a `SECURITY.md` and an email address for contacting the team.
Editorial conclusion
ACAT is unusual in the best way: a production system built for a specific person, then released so others could extend it. What makes it tractable as a codebase is that the configuration layer has been doing the hard work of decoupling, moving from XML to JSON with a schema directory and editor support, while the modernization documents describe dependency injection and logging work still ahead. The practical entry points are the JSON configuration guide for users, the developer guide for extending the configuration system, and the modernization plan if you are contributing code. The repository assumes a Windows machine, Git with LFS support, and comfort with a Visual Studio solution.
Frequently asked questions
What is the Assistive Context-Aware Toolkit?
An open source platform created at Intel Labs for people with restricted speech and typing capabilities. It provides keyboard simulation, word and sentence prediction, and speech synthesis. It was originally built for Professor Stephen Hawking and opened up so developers could add interfaces, sensing modalities and language prediction.
How do I clone and build ACAT?
Use Git from the command line rather than GitHub Desktop, because the repository uses Git Large File Storage and submodules. Run `git clone`, then `git submodule update --init --recursive` on first clone. Development uses C# with Visual Studio 2022 and .NET 4.8.1, targeting Windows 10 version 20H2 or higher and Windows 11.
Where do ACAT configuration files live and what format are they in?
In `%APPDATA%\ACAT\Config\`, in JSON format. The repository ships a `schemas/` directory so the files get IntelliSense in VS Code. Key configuration types include ActuatorSettings for input devices, Theme, PanelConfig, Abbreviations and Pronunciations, with a migration guide covering the move from XML.
What hardware can ACAT use besides a keyboard?
The ActuatorSettings configuration type lists keyboard, camera, brain computer interface and switches as input devices. Version 4.0.0-beta-1 added support for the Unicorn Hybrid Black, an eight channel wireless EEG headset from GTec that needs no extra custom hardware, and it is the only headset that release supports.
Which branch should I use, master or dev?
Master. The README states that master always contains the most recent release, while dev holds commits towards upcoming releases with changes still in flux, and warns not to clone it because the solution may not be stable. Use `git pull origin master --recurse-submodules` to keep submodules current.
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/intel-acat)