Skip to main content

neurosymbolic-system

The runtime that lets agents control robots. Senses, rules, arbitration and motion composed onto one 50 Hz tick — extracted from reachy-mini-cli and imported as a library by robot CLIs such as reachy-mini-cli and microduck-cli.

The robot CLI owns the hardware — the SDK client, the media session, the process supervision. This package owns the loop: who gets the head this tick, what the rules say about the sense snapshot, and how a behavior's contribution composes into a complete pose.

Status

Day zero. The runtime has not been extracted yet. What ships today is the agent baseline — the CLI, the mesh identity, and CI — plus the design brief in CLAUDE.md that describes the donor architecture and the seams the extraction has to cut. Track progress there: each section moves out of "being extracted" as it lands on disk.

What's here today

  • An agent-first CLI cited from teken (afi-cli) — the runtime package has no third-party dependencies, and keeping it that way is a design rule (a library two robot CLIs import must install on a bare box).
  • A mesh identity — culture.yaml (suffix + backend) and the matching resident prompt file (AGENTS.colleague.md, since this agent runs backend: colleague).
  • The canonical guildmaster skill kit under .claude/skills/, vendored cite-don't-import. See docs/skill-sources.md.
  • A build + deploy baseline — pytest, lint, the agent-first rubric gate, and PyPI Trusted Publishing wired into GitHub Actions.

Quickstart

uv sync
uv run pytest -n auto                   # run the test suite
uv run neurosymbolic-system whoami      # identity from culture.yaml
uv run neurosymbolic-system learn       # self-teaching prompt (add --json)
uv run teken cli doctor . --strict      # the agent-first rubric gate CI runs

CLI

Verb What it does
whoami Report this agent's nick, version, backend, and model from culture.yaml.
learn Print a structured self-teaching prompt.
explain <path> Markdown docs for any noun/verb path.
overview Read-only descriptive snapshot of the agent.
doctor Check the agent-identity invariants (prompt-file-present, backend-consistency).
cli overview Describe the CLI surface itself.

Every command supports --json. Results go to stdout, errors/diagnostics to stderr (never mixed). Exit codes: 0 success, 1 user error, 2 environment error, 3+ reserved.

Design in one page

The pieces below come from the donor and are what the extraction is cutting a seam around. The long version, with the hardware measurements behind each number, is in CLAUDE.md.

  • One tick, one owner per channel. Each tick drops expired behaviors, arbitrates a single owner per channel, asks each owner for its contribution once, and composes a complete pose — unclaimed channels fall to neutral, so the target is never partial.
  • Four contention classes — passive, stoppable, unstoppable, stopping — resolved by (class priority, recency), in two pure functions with no I/O and no clock. Arbitration is abstention-aware: a behavior with nothing to say this tick yields the channel rather than freezing it.
  • One seam. Everything else — rules, agent intents, sense drivers, export feeds, metrics — rides a single per-tick tick_seam callable as a pure consumer. The engine never imports them; they never import its internals.
  • Senses are injected peek callables, never imports, and every one degrades to None instead of raising.
  • Rules are data, never code — react / inhibit / modes, loaded as a shipped layer plus a box-local overlay that overrides per rule id, so operator tuning survives an upgrade and new shipped rules still reach a deployed box.
  • Drop, don't block. The 20 ms budget is the product: work that can block goes to a worker, and every drop names its reason on a grep-able [SENSE stage=… source=… event=…] line.
  • Validate fail-closed. An out-of-range axis or a runaway duration is refused, never clamped.

Consumers

Repo Relationship
reachy-mini-cli donor and first consumer — its behavior engine run becomes a thin composition root over this library
microduck-cli second robot, different plant, same tick
reachy_nova reference only — an independent ~50 Hz loop several of these patterns were invented in

Contributing

See CLAUDE.md for the full conventions: version-bump-every-PR, the cicd PR lane, the worktree layout, and the rules for porting a module out of the donor.

License

Apache 2.0 — see LICENSE.

Metadata

Release files for neurosymbolic-system 0.8.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 neurosymbolic-system 0.8.0
File Size Uploaded Provenance
neurosymbolic_system-0.8.0.tar.gz 172.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for neurosymbolic-system 0.8.0
File Interpreter ABI Platform
neurosymbolic_system-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 196.1 kB

Release files / neurosymbolic_system-0.8.0.tar.gz

Download URL neurosymbolic_system-0.8.0.tar.gz
Size 172.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d982e5e72ff79b4f81e380a032c6a024b91bdcfa5a7f17a3b97139fa301c4073
BLAKE2b-256 checksum
How to use checksums
b43b501ebea2b1f8912e13cdc16921b4f8af708782f34c36da32fb883b637bb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / neurosymbolic_system-0.8.0-py3-none-any.whl

Download URL neurosymbolic_system-0.8.0-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7eddaac4771a09a1b73c1216aee34eae1922848dcda59938c86f7305bfdf5ade
BLAKE2b-256 checksum
How to use checksums
662cf4e64c496cec9685ceaf2c67db0b9f9c810348bdd1864dab49a181ed9fb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for neurosymbolic-system 0.8.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.8.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