Skip to main content

kernel

The ARC kernel — repo/project name is kernel; the Python package it provides is arc (flat layout, no src/). This is what every project's arc.<capability> namespace is ultimately built on.

arc/                # this repo
├── pyproject.toml      # name = "arc-kernel" (distribution — "arc" was taken
│                          on PyPI), packages = ["arc"]
├── README.md
├── LICENSE
├── .gitignore
└── arc/                # the actual package — `import arc`
    ├── __init__.py
    ├── cli.py           # the `arc` command: init, install, build, settings, plugin
    ├── registry.py
    ├── settings.py
    └── secrets.py

Two-tier install model (mirrors frappe-bench / bench)

  1. Bootstrap globally, once — either pip install arc-kernel (or pipx install arc-kernel / uv tool install arc-kernel, both preferred over a bare pip install for a CLI tool) from PyPI, or uv tool install --editable . from a local clone of this repo if you're working on the kernel itself. Either way you get the arc command anywhere on your machine.
  2. Per project — arc init clones THIS repo into <project>/arc/ and wires up a uv workspace. From then on, use <project>/.venv/bin/arc for project commands — that copy is pinned to the exact commit this project was built against, independent of the global bootstrap CLI's version.

Note: inside a scaffolded project you'll see project/arc/arc/ — the outer arc/ is this project's kernel slot (a workspace member, named the way apps/frappe names its slot in a bench); the inner arc/ is the actual Python package. Two different things, same name for a real reason — not duplication.

Commands

arc init [project_name] --kernel-repo <git-url-or-path> [--kernel-branch main] [--env dev]
arc install <git-url> [--branch BRANCH] [--name NAME]
arc build [-p/--plugin NAME] [--no-lock]
arc settings get <key> [--reveal]
arc settings set <key> <value> [--secret]
arc settings delete <key>
arc plugin list
arc plugin enable <name>
arc plugin disable <name>

ARC_KERNEL_REPO env var can be set once so --kernel-repo doesn't need to be typed on every arc init.

Plugin manifest format

Every plugin repo has, at its root:

# plugin.toml — ARC-specific metadata only
[plugin]
name = "psqldb"
version = "0.1.0"
capability = "psqldb"          # exported as arc.<capability> at boot
requires = []
optional_requires = ["redix"]
# pyproject.toml — standard Python packaging; real dependencies live HERE
[project]
name = "psqldb"
dependencies = ["asyncpg>=0.29"]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

Following this same kernel's convention, plugin packages should also use a flat layout (psqldb/psqldb/__init__.py inside the plugin's own repo, not psqldb/src/psqldb/) — same reasoning, same fix, applied consistently.

Metadata

Release files for arc-kernel 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arc-kernel 0.1.0
File Size Uploaded Provenance
arc_kernel-0.1.0.tar.gz 36.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for arc-kernel 0.1.0
File Interpreter ABI Platform
arc_kernel-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 78.0 kB

Release files / arc_kernel-0.1.0.tar.gz

Download URL arc_kernel-0.1.0.tar.gz
Size 36.8 kB
Tags Source
SHA-256 checksum
How to use checksums
997989f5c2053a9a269bda29be4363c93b82bf4b508609fcedd060453d8eb8a9
BLAKE2b-256 checksum
How to use checksums
78ea40f24296af6fa41bdb29983656bb861c7a8f8b95e493c625de272894a6eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / arc_kernel-0.1.0-py3-none-any.whl

Download URL arc_kernel-0.1.0-py3-none-any.whl
Size 41.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5759b0205653298382e1df2a1a5580b0d927662568c371819fcce70cb153056
BLAKE2b-256 checksum
How to use checksums
78f5a450e0135139bafe390da90fb0f9093952b3fb3a697982cceb4c7120a920
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Security for arc-kernel 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page