CCOS Releases¶
Note
This page is generated from the CCOS Firmware Meta API’s
changelog.json, merged across CharaChorder One, Lite, X, Two, Engine,
and Master Forge. Older firmware versions are not covered here because the
Meta API no longer serves their changelog data. For the release currently
in beta, see Beta Releases.
3.0.0¶
2026-01-28 — CharaChorder Engine, CharaChorder Lite, Master Forge, CharaChorder One, CharaChorder Two, CharaChorder X
Features
Cookbook
The device manager now includes a new cookbook section. The cookbook includes a number of example usecases derived from our new end-to-end testing framework, with interactive demos and detailed information about the setup used.
Single key chords
You can now use a single key as an input to a chord. This feature must be enabled in the settings first via the minimum chord key count setting.
Custom Arpeggiates
You can now add chords with ARPEGGIATE + key -> … to create custom arpeggiates. The previously hard-coded arpeggiates can be added back by adding the “arpeggiates” default chords in the device manager’s library tab.
Arpeggiated Modifier Overrides
Overriding modifiers with exact chords is now also possible when using the modifier as an arpeggiate after the chord.
Hyperspace
Control what the concatenator between chords is using the new HYPERSPACE and CAPTURE actions.
Prepended Concatenation Style
You can now select “prepended” as a concatenation style. This mode is part of the Hyperspace feature, and recommended for text editing (like coding). Instead of placing the space after chords (default), it is prepended to the subsequent chord. This means you don’t have to erase extra spaces while editing.
VIM Mode
Adds universal VIM motion emulation through the VIM action. This mode makes use of standard shortcuts like CTRL RIGHT (or ⌘ on Mac) to emulate VIM motions in a best-effort way in any textbox. While not as powerful as native VIM or even just a VIM plugin, you don’t always have the option to use either of them, so this is a way to carry around your VIM muscle memory to nearly every textbox you encounter.
Fuzzy Modifiers
Modifiers (like Shift or layer keys) normally only work if you press them before the key you want to modify, and release them before pressing any key you don’t want modified. Fuzzy modifiers relax this rule: they let you press or release the modifier at almost the same time as the key. Instead of requiring a strict order, the system just checks whether the modifier’s press or release happened close enough in time to the key press.
Removed duplicate keycode actions
In the past we’ve had both ASCII and KSC_… actions, which caused a lot of confusion to which ones you are supposed to use and if there’s any difference. Adding to that confusion, CCX as the only device also used these actions by default in its chord library and layout, making transferring and sharing libraries between X and Lite practically impossible. We’ve made the decision to finally remove all KSC_… actions which are duplicates of ASCII actions. Layouts are automatically migrated with no action required, for technical reasons however it is not possible to migrate chord libraries in the same way. Use `CML CE` to auto-fix the library.
Layer Warp
For gaming profiles we added a “layer warp” setting which re-presses held keys when you switch layers.
Updated grammar rules
Grammar rules have been updated with community contributions. You can submit your own on our Issue Repo .
DUP can now be used with modifiers
When typing “a” hitting shift + DUP now produces “A”
Case insensitive grammar rules
Capitalize now toggles case
USB Aggressive Reporting
Enabling this might improve stability on certain hardware combinations.
Keyboard Rollover Settings
Reducing this to 6-key might improve compatibility with older hardware.
Chord library fix command
Added a new Serial API command `CML CE` that auto-fixes issues in the chord library, such as duplicate chords, usage of old/removed action codes, bad chord inputs, duplicate chord inputs and suspicious corrupted chords (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ chords). Please make a backup before using this command.
High resolution scrolling
LED on/off fading
LEDs now smoothly fade on and off.
DUP now re-presses keys instead of continuing to hold them
Reorganized Action Codes
Predictable auto-space specifier
Auto-space rules have been simplified. Auto-spaces are always applied unless KSC_00 is present at the end of the chord. Chords old chords are auto-upgraded. Pre-3.0.0 backups need to be upgraded manually!
Moved settings and layout flash
Applies to: CharaChorder One.
Settings/layout storage has been moved from onboard flash to the external flash (same where the chords live). When first updating this will cause a factory reset, however following this update settings and layout will no longer be wiped when updating.
Arpeggiated chord modifiers can be disabled separately
Chord capacity command (CML CF)
Profiles
Applies to: CharaChorder Lite, CharaChorder X, CharaChorder Two, CharaChorder Engine, Master Forge.
Support for three Profiles has been added, each with their own layout and settings. You can combine this feature with dynamic libraries as well by creating a profile activation chord that simultaneously activates your desired dynamic library.
Added a fourth layer
Applies to: CharaChorder Lite, CharaChorder X, CharaChorder Two, CharaChorder Engine, Master Forge.
Fixes
Incorrect max chord count
Applies to: CharaChorder One.
In a past update it was incorrectly stated that the maximum chord count was increased to 16k. The actual increase was to 10,240. We already put a great deal of care towards optimization, but due to the very limited amount of RAM, further reductions in maximum chord count can happen in the future as a tradeoff for new features.
Memory corruption when approaching chord limit
Applies to: CharaChorder One.
This issue could cause memory corruption when approaching the limit of 10,240 chords, approximately starting around 9000 chords.
Improved flash performance
Capitalize action is not interrupted by chentry
NULL is now ignored as an action
Subsequently modifiers that use layer keys now no longer break backspacing when the target layer has no actions on part of the chord input keys.
Stuck key mitigation
As a general fallback measure against (software-)stuck keys we added a measure that releases all keys when you either physically release all switches or at the end of a chord.
Specific compounds caused library corruption
There was a bug that could cause library corruption if you got unlucky that has now been fixed. This only compound chords with a specific base. you can check if your library contained any of these here .
Can’t use modifiers with chords that change concatenators
Smart detection erases newlines
Removed RST STARTER/FUNC commands
Factory chords are now added via the device manager/firmware meta api instead.
RST CLEARCML/FACTORY/OTA will now force release all held keys before proceeding
Mouse move/click actions are now breaking actions
Removed obsolete “character entry” option, use “enable chording” option instead.
Potential improved USB Hub compatibility
Applies to: CharaChorder Lite, CharaChorder X, CharaChorder Two, CharaChorder Engine, Master Forge.
Fixed device names in the manager popup
Applies to: CharaChorder Lite, CharaChorder X, CharaChorder Two, CharaChorder Engine, Master Forge.
Poll rate setting
Applies to: CharaChorder Lite, CharaChorder X, CharaChorder Two, CharaChorder Engine, Master Forge.
Replaced the mouse/keyboard poll rate settings (which didn’t actually change the poll rate) with a USB poll rate setting under a new experimental category
Fixed swapped Right Shift and Quote keys
Applies to: CharaChorder Lite.
Disconnect issues
Applies to: Master Forge.
We’ve identified a potential workaround for intermittent disconnects on primarily MacOS and Windows, available as the “aggressive reporting” setting. We’re still continuing to investigate as we gather feedback from this change.
Leds can now be fully turned off
Applies to: Master Forge.
2.1.1¶
2025-10-06 — CharaChorder Lite, Master Forge, CharaChorder One, CharaChorder Two
Fixes
Fixed swapped Right Shift and Quote keys
Applies to: CharaChorder Lite.
2.1.0¶
2025-05-09 — CharaChorder Lite, Master Forge, CharaChorder One, CharaChorder Two
Features
Instant Boot
You can now start typing on your device immediately while the chords load in the background. The CCOS is ready. message has been removed.
Smart Chord Detection
If you are okay with a bit more latency while typing this mode allows you to chord without backspacing .
Reworked Auto Delete
Auto delete is now smarter and can be properly set to just delete chord inputs.
Quickfix
A single action to delete the last chord, last attempt, or just act as backspace.
Active Quickfix
Quickfix that auto-deletes all attempts until you successfully chord.
Custom Arpeggiates (almost)
You can now (almost) create custom arpeggiates through chords. The old arpeggiates just use JOIN and CAPITALIZE actions and act as a chord internally.
Filtered DUP
By default DUP will now only repeat printable keys (i.e. not backspace or arrow keys) so that it can be safely used in chord inputs. The previous behaviour is still available as DUP_ALL .
Media Keys
This feature was contributed by @gex__ as part of our communal source program, thank you!
Spin Scroll
This feature allows you to dedicate a stick to scrolling, and scroll by spinning it like a scroll wheel instead of holding down a key.
AltGr/US Intl. Actions
We now provide a set of actions that hold AltGr+… and can be assigned to your layout directly.
Hyper & Meh Actions
Mod + Layer Actions
Layer Toggle Support
This feature expands upon a bug we had before. You can now assign a different layer key to the target layer to toggle a layer on or off.
Increased chord count to 16k
Applies to: CharaChorder One.
Build Meta API
For easier and faster development every CCOS build now contains a meta.json file, which includes action codes, settings, changelog, firmware, factory defaults and more.
Delay 1/10/100ms Actions
Reworked LED controls
Applies to: CharaChorder Lite, Master Forge.
Fixes
Shift key not being held through layers
Fixed keyboard poll rate setting