Package Registry
p.c.nf is the CNF package registry — a GitHub-style namespace for publishing versioned packages. Every artifact has a stable URL, download counter, and access controls.
Overview
p.c.nf hosts packages under a <username>/<project> namespace. Each project has one or more versions, and each version can have one or more downloadable artifacts.
Think of it like npm’s @scope/package or GitHub’s user/repo — but for binary artifacts instead of source code.
URL structure
p.c.nf/
Catalog — browse all public packages
p.c.nf/<user>
User profile — list their packages
p.c.nf/<user>/<pkg>
Project page — latest version and history
p.c.nf/<user>/<pkg>/<version>
Version page — artifacts and changelog
p.c.nf/<user>/<pkg>/download
Download the latest artifact
p.c.nf/<user>/<pkg>/<version>/download
Download a specific version (permanent)
p.c.nf/<user>/<pkg>/<version>/<label>
Download a labeled artifact (for example, a platform variant)
Downloading
Download a package with curl or wget:
Downloads support HTTP Range requests for resuming and conditional GET requests that return 304 Not Modified.
Rate limit: 30 downloads per IP address per minute. A 429 Retry-After header is returned when the limit is exceeded.
Publishing
Publish a new version through the console or the HTTP API. Either method creates the project on its first publish.
Via API
Required fields:
slug— lowercase letters and hyphens only (maximum 128 characters)version— a free-form string; semantic versioning is recommendedfile— the artifact to upload
Optional fields: description, category, icon, visibility, changelog, and label for versions with multiple artifacts.
Via Console
Sign in at console.c.nf and open Downloads administration. The console handles file upload, metadata, and version updates.
/<username>/ namespace. You cannot publish under another user’s name.Authentication
Two authentication methods are supported:
API Key (recommended for automation)
Generate a key at console.c.nf/account/api, then send it as a Bearer token:
Keys are shown once when generated. You can create up to 10 active keys and revoke them at any time.
Session cookie
When browsing from console.c.nf or id.c.nf, your session cookie authenticates you automatically. This is useful for the browser extension and console.
Visibility
public
Listed in the catalog; anyone can download it.
unlisted
Hidden from the catalog; anyone with the URL can download it.
private
Only the owner and administrators can view or download it.
Versions
Every published version is preserved at a stable URL. Older versions remain available after new releases, so consumers pinned to /1.0.0/download continue to receive that exact build.
The unversioned /download endpoint always serves the latest version.
Version strings are free-form text. Semantic versioning (MAJOR.MINOR.PATCH) is recommended for clarity but is not enforced.
FAQ
What is the difference between p.c.nf and d.c.nf?
p.c.nf is a versioned package registry with a namespace for each user (user/project). d.c.nf is a flat catalog of curated downloads managed by CNF administrators.
Can I delete a version?
Yes, through the console. Deleting a version breaks any pinned URLs consumers may have saved, so publishing a new version is usually preferable.
Is there a size limit?
Artifact limits depend on your user permission level: 50 MB per UPL step, up to approximately 500 MB. Larger files can be uploaded in chunks through the console.
How do I authenticate the extension?
The CNF Cred extension supports session cookies when you are signed in to console.c.nf, as well as API keys. Configure the method in the extension settings.