Licensing
A C⏚ license is a signed file bound to one machine. You generate a fingerprint, exchange it for a license on the portal, and drop the file into place. It takes about a minute.
What needs a license
| Free, no license | Syntax highlighting, snippets, file icons. Client-side, always work. |
| Open source (MPL-2.0) | The C⏚ frontend, the Verilog generator, the language server, the runtime library. Build cg-compiler yourself and compile to Verilog forever, with no license gate. |
| Licensed | The prebuilt supported extension, the bytecode Fast Sim, the VHDL backend, the FSM and Graph views, and the production IP cores. |
You never pay for permission to compile. The Verilog path is open source and stays that way. See the open-core promise.
The license is checked before the language server starts. Without a valid license the server does not start at all: no diagnostics, no hover, no navigation, no generation, no simulation. That is not a degraded mode, it is off. The CLI behaves the same way and prints the reason instead of running your command.
A 14-day trial takes three fields and no credit card.
Activate in VS Code
- Open the command palette (
Ctrl/⌘+Shift+P) and run Neosyn: Show Machine Fingerprint. The 64-character hash goes to your clipboard. - Paste it into the portal and download your license file.
- Run Neosyn: Install License File… and pick it. It is stored at
~/.neosyn/cg.licenseand VS Code offers to reload.
Neosyn: Open License Portal jumps straight to step 2 from inside the editor.
Activate for the CLI or CI
The jar carries the same three operations, so a headless machine needs no editor. Get the fingerprint:
java -jar cg-language-server.jar fingerprint
# 34b212b383c3f4ea05cb473092b6559118a4d87c377bd3446967cc4e125a7ad5Exchange it on the portal as above, then put the file where the jar looks for it:
mkdir -p ~/.neosyn
cp neosyn-cg.license ~/.neosyn/cg.licenseOn CI, set NEOSYN_CG_LICENSE instead. It overrides the path
entirely, so you can hold the license in a secret and write it
anywhere the job can reach:
export NEOSYN_CG_LICENSE=$RUNNER_TEMP/cg.license
printf '%s' "$CG_LICENSE_CONTENT" > "$NEOSYN_CG_LICENSE"The fingerprint is per machine, so a CI runner needs a license issued for that runner. Ephemeral runners that get a fresh identity on every job cannot be fingerprint-bound. Ask your account manager for a license scoped to your build fleet instead of trying to re-issue per job.
Check that it worked
java -jar cg-language-server.jar verify-licenseOK
customer: acme-hardware
issued: 2026-08-23T09:14:00Z
expires: 2027-08-23T09:14:00Z
fingerprint: 34b212b3…
features: [fastsim, vhdl]
version-cap: 2.10.0On failure it prints FAIL: <REASON> — <message> to stderr and
exits 1, so it works as a CI gate before a build step. Pass
--file <path> to check a file before installing it.
In VS Code, open any .cg file: live diagnostics and a Neosyn: Fast
Simulation (Bytecode) play icon in the editor title bar mean the
server started. The Quick tutorial has a file you
can paste.
When it fails
The extension shows a modal with three buttons — Install License File…, Show My Fingerprint, Open Customer Portal — and a reason. The CLI prints the same reason. Every one of them:
| Reason | What happened | Fix |
|---|---|---|
FILE_MISSING | No file at ~/.neosyn/cg.license, and NEOSYN_CG_LICENSE is unset | Install one, or set the variable |
MALFORMED | The file is not a license — truncated, or the wrong file | Re-download it. Copy the whole file; it is one long line |
BAD_SIGNATURE | The signature does not match the key in this build | Almost always a license issued for a different build generation. Ask for a reissue against your current version. The wording mentions forgery, but a stale license is the ordinary cause |
EXPIRED | Past the expiry date in the file | Renew, then install the new file |
NOT_YET_VALID | The start date is in the future | Usually a clock problem. Check the machine's date |
FINGERPRINT_MISMATCH | The license belongs to another machine | Rebinding is a support operation — contact us |
UNSUPPORTED_VERSION | The license caps at an older version than the one installed | Renew, or install a version within the cap |
UNKNOWN_KEY | The build has no embedded public key | The jar is broken. Re-download the extension |
Non-license startup failures live in
Troubleshooting. The most common by far is
Could not run Java, which means no Java 17+ on your PATH.
Moving machines
The license is bound to the fingerprint, so it does not travel. A new laptop, a reimaged workstation, or a rebuilt container each need a reissue. Generate the fingerprint on the new machine and contact us.
Next: Install if you have not set up a surface yet, or the Quick tutorial to compile something.