Licensing
dxflow uses a permission-based licensing system to control access to features. Licenses are JSON files signed with RSA, verified at engine startup against an embedded public key: a valid license starts the engine, an invalid one stops it, and a missing license falls back to the built-in General license. No custom license is required to start.
Default license (General)
The built-in General License needs no registration and is valid until January 1, 2030. It grants the core modules shell, artifact, runtime, workflow, and agent. The proxy and bridge modules require a signed license.
The auth and engine controllers (and console when started with --console) are always served regardless of license.
Permissions
| Module | Description |
|---|---|
shell | Terminal access and command execution |
artifact | File storage and management |
runtime | Docker, Podman, Singularity, and Apptainer integrations |
workflow | Compose workflow orchestration |
agent | AI agent sessions and workflow assistance |
bridge | Network bridge connections (with traffic limits) |
proxy | Proxy configurations and tunnels (with traffic limits) |
Comparing licenses
| General | Free | Custom | |
|---|---|---|---|
| How to get it | Built into the binary | dxflow license create | info@dxflow.ai |
| Registration | None | Google or Stripe verification | Contact us |
| Cost | Free | Free | Contact us |
| Valid for | Until January 1, 2030 | 1 year from issue | Your term |
| Runs on | Any machine | The Identity it was issued for | The Identities you need |
shell, artifact, runtime, workflow, agent | ✓ | ✓ | ✓ |
proxy | — | 1 connection, 1 GB traffic | Your limits, or unlimited |
bridge | — | 1 connection, 1 GB traffic | Your limits, or unlimited |
The Free license is the one to reach for when you need proxy or bridge — that is the only capability difference from General. Everything else is identical, so an engine that never opens a tunnel or a bridge runs happily on General forever.
Getting your identity
Licenses are tied to your machine's unique Identity and cannot be transferred between machines. Get it with:
dxflow engine info
Identity: cc2bcf4a9fc3fa056189533df3ee3af6
Directory: /home/user/.dxflow
Profile: default
License commands
| Command | Description |
|---|---|
dxflow license info | View active license details |
dxflow license create | Create a license via dxflow Cloud in your browser (alias: license issue) |
dxflow license activate | Download and activate this engine's license (alias: license active) |
dxflow license activate --name <NAME> | Activate a license issued under a custom name |
dxflow license activate --no-download | Activate a license file already in the dxflow directory |
dxflow license deactivate | Revert to the built-in General license (alias: license deactive) |
dxflow license create opens your browser to dxflow Cloud with your Identity and name pre-filled, guides you through authentication, and generates the license file. Activating downloads the license from dxflow Cloud, stores it as license-<identity>.json (identity truncated to 8 chars), and updates the license config setting.
activate reads your Identity from the machine and the name from your hostname — the value dxflow license create pre-fills — and the download is authorized by that pair. Pass --name when you renamed the license in dxflow Cloud.
Creating a custom license
Run the create command
dxflow license create
Your browser opens with your details pre-filled.
Authenticate
Choose Google (verified via email) or Stripe (verified with any payment card — no charges, the card is used only for identity verification and is not stored).
Configure
The license name is pre-filled with your hostname — keep it so activation resolves it for you. Other settings are automatic: validity 1 year, all core modules enabled, and proxy and bridge each with 1 connection and 1 GB traffic.
Download and activate
dxflow license activate
The engine downloads the signed license from dxflow Cloud and activates it. Add --name <NAME> when you renamed the license.
Authentication ties each license to a verified identity to prevent abuse; no payment or personal data is collected beyond what verification needs.
License format
{
"identity": "your-machine-identity",
"name": "License Name",
"owner": "Anonymous",
"starts": "Mon, 01 Jan 2025 00:00:00 GMT",
"expires": "Mon, 01 Jan 2030 00:00:00 GMT",
"permission": {
"shell": {},
"artifact": {},
"runtime": {},
"workflow": {},
"agent": {},
"proxy": {
"count": 1,
"traffic": 1024000000
},
"bridge": {
"count": 1,
"traffic": 1024000000
}
},
"signature": "cryptographic-signature",
"issued": "Mon, 01 Jan 2025 00:00:00 GMT"
}
Need a different license
The Free license fits a single engine with light tunnelling. Write to info@dxflow.ai when you need any of:
- Higher or unlimited
proxy/bridgelimits — more connections, more traffic, or no cap at all - A longer term — beyond the 1 year a Free license carries
- Several engines — one license per Identity, issued together
- Compliance requirements — a named owner, an agreed term, or a signed agreement
Tell us your engine Identity (dxflow engine info), the modules and limits you need, and the term. Licenses arrive the same way as any other: dxflow license activate picks them up.
When a Free license expires, run dxflow license create again and re-activate.
Troubleshooting
| Problem | Fix |
|---|---|
| License not verified | Confirm the file is unmodified, the license identity matches your machine, and the system date/time is correct |
| License expired | Check the expiration date with dxflow license info, then run dxflow license create |
| Invalid license signature | The file may be corrupted — download a fresh copy |
| License not found on activate | The name must match the one used at issue time — check it in the Cloud license list and pass --name |
Check current status with dxflow license info, and report issues at GitHub.