ubCode for teams

This page is for the people who bring ubCode into an organisation: the engineer who evaluates it, the team lead who rolls it out, the administrator who runs it in CI or on machines without Internet access, and the person who buys it.

Licensing in brief

ubCode has two licensing modes, and no feature tiers: an active license of either mode unlocks every feature.

  • Open source — a project whose Git repositories are publicly reachable is detected automatically and needs no key; the license terms say which projects qualify.

  • Commercial — a private project uses a license key, or an offline license file. CI runners use a systems license, which is not tied to a person.

Without a license, the features still work on small projects, within limits, and some commands need a license whatever the project’s size. What works without a license lists them all, command by command, for the CLI, the editor and the MCP server.

Use it at work. ubCode is free for open-source projects, and a private project needs a commercial license. Request a free enterprise trial to evaluate it on your own private project.

CI and machines without Internet access

The same recipe covers a CI runner and an air-gapped machine:

  1. Install the ubc CLI, a standalone binary (see ubc CLI).

  2. License it with a systems license, passed to the runner in the UBCODE_LICENSE_KEY environment variable (see the license configuration for the other variables).

  3. If the machine cannot reach the license server, ask us for an offline license file, which needs no network access, or reach the server through a proxy (see Proxies).

  4. Keep indexing off the network: set offline = true under [intersphinx] and under [needs.remote], and use local inventories and needs.json files.

  5. If you trace C or C++ with the libclang engine of codelinks, provide libclang yourself, or point its one-time download at an internal mirror.

  6. Gate pull requests with ubc check, as Using ubc in CI/CD shows.

ubc build linkcheck is the one command whose whole purpose is the network: leave it out of an offline pipeline.

Proxies

License checks use the system’s proxy settings, or a proxy set in ubcode.toml or in the UBCODE_LICENSE_HTTPS_PROXY environment variable; Proxies has the details and the supported proxy types. The proxy in ubcode.toml and UBCODE_LICENSE_HTTPS_PROXY apply to the license server only.

Every other request ubCode makes in the table below, the open-source check included, uses the proxy named in the standard ALL_PROXY, HTTPS_PROXY or HTTP_PROXY environment variables, and honours NO_PROXY.

Network use and data

ubCode sends no telemetry.

These are the network requests ubCode makes, and how to avoid each one. The VS Code extension runs the same ubc engine, so the list applies to it too, and it adds the one download in the last row; a preview may also display remote images that your own documents or report templates link to.

Request

When

What is sent

To avoid it

License check, to the license server (api.cryptolens.io)

A license key is configured; the result is cached

The license key and one machine code: a one-way hash of the configured user e-mail, computed on your machine; a fixed value for a systems license; or, for a license bound to a machine, a hash of the machine’s identifier

Use an offline license file

Open-source check, to each Git remote on a supported public host

No commercial license is active

An unauthenticated HEAD request for the repository URL, with any credentials removed

Configure a commercial license, which is tried first

Intersphinx inventories (objects.inv)

The project configures [intersphinx] projects

A GET of each configured inventory URL

offline = true, or local inventory files

Remote needs.json

The project imports needs from a URL (external needs or needimport)

A GET of each URL

[needs.remote] offline = true, or local files

External links

ubc build linkcheck only

A request to each external link in the documentation

Do not run it

Documentation grounding: the public ubCode and Sphinx-Needs documentation

The MCP tools search_docs and fetch_doc_page, and Pharaoh’s chat entry point in VS Code

GET requests for the documentation’s page index and pages; the search itself runs on your machine

Do not use those tools

The libclang library, from PyPI or your configured index

The libclang engine of codelinks parses C or C++ and finds no libclang

A GET of the index’s libclang page, then one of the pinned, checksum-verified package

Set LIBCLANG_PATH, or install libclang (see analyse.preprocessor)

The Claude Code agent adapter (@zed-industries/claude-code-acp), from the npm registry

Claude Code is the agent selected in VS Code, for the Pharaoh Agent panel or for Run Quality Analysis

npx fetches the pinned package, unless npm has it cached, and runs it; npm’s own proxy settings apply

Select another agent

Mermaid diagrams in ubc build pdf are drawn by a browser on your machine with every network request blocked.

AI tools you connect are separate programs: the runner that ubc agent run starts, the agents the Pharaoh panels in VS Code drive, and the model behind Pharaoh’s chat entry point. Run Quality Analysis in VS Code sends the content of the needs it scores, and of the needs they link to, to the language model you selected (GitHub Copilot by default) or to the agent you configured. What these tools send on, and where, is governed by them and their providers.

Support