Skip to content

Packages

sarr-io edited this page Jun 12, 2026 · 28 revisions

Packages

Zinc packages are local bundles of Circuitry shapes and supporting assets.

Manifest

name: browser
version: "0.6.1"
about: Browser shapes and local browser harness.

shapes:
  search-web: shapes/search-web.circuitry.yaml
  open-page: shapes/open-page.circuitry.yaml
  extract-page: shapes/extract-page.circuitry.yaml
  read-sources: shapes/read-sources.circuitry.yaml

adapters:
  browser: adapters/browser

prompts:
  browser: prompts/browser.md

files:
  harness: bin/browser-harness

docs:
  readme: docs/README.md

assets:
  icon: assets/icon.svg

scripts:
  setup:
    linux: scripts/setup
    macos: scripts/setup
    windows: scripts/setup.cmd
  check:
    linux: scripts/check
    macos: scripts/check
    windows: scripts/check.cmd
  remove:
    linux: scripts/remove
    macos: scripts/remove
    windows: scripts/remove.cmd

Asset references

Package asset references use @ inside Circuitry files and Zinc config:

@browser.shapes.search-web
@browser.files.harness
@browser.docs.readme
@browser.assets.icon
@responses.adapters.responses
@responses.prompts.runtime

The alias before the first dot resolves through the file’s zinc.packages map or the run context.

CLI

zn pkg install <source-or-name>
zn pkg remove <name>
zn pkg list
zn pkg check <name>

Package install/check/remove scripts are package-owned assets. Zinc runs them through its local policy boundary.

Soft dependencies

Packages may declare optional package dependencies without causing Zinc to install them:

soft_dependencies:
  browser:
    package: zinc://package/browser-tools@0.1.0
    about: Optional browser-backed shapes are available when browser-tools is installed.

Zinc reports soft dependencies during package inspect and install. It never installs them automatically. A segment that references @browser... works when the package is installed and fails with SoftDependencyNotInstalled only when that segment is actually used.

This keeps package supply chains explicit: a package can name optional capabilities, but the user decides what gets installed.

First model adapter package

The first adapter package is public:

zinc://package/openai-responses@0.1.4
https://github.com/darkhorseprojects/darkhorseprojects-packages/tree/main/openai-responses

It exposes:

shapes:
  short-answer: shapes/short-answer.circuitry.yaml

adapters:
  responses: adapters/responses.py

files:
  default-config: config/zinc.models.yaml

Its setup script installs package-provided global Zinc config for a local llama.cpp server on 127.0.0.1:30000, including context window and reasoning token budget.

Clone this wiki locally