npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@logicsrc/openfleet

v0.1.0

Published

Reference implementation of the OpenFleet standard: the record an agent session carries about who spawned it, for what and under what ceiling, the ledger its sysop reads, and the `logicsrc fleet` sysop verbs.

Downloads

82

Readme

@logicsrc/openfleet

Reference implementation of OpenFleet, the record an agent session carries about where it sits: which human answers for it, who spawned it, for what task, at what depth, and under what ceiling. A fleet is every agent session one human, its sysop, is answerable for. A swarm is the set of sessions one spawner starts to do one task.

This package holds the record, the ledger, the ceiling rules, claiming and deriving, the folded tree, the five sysop verbs, and the Claude Code hooks. moshcode writes the same files from moshcode swarm and reads them with moshcode fleet; one tree shows both engines.

Install

npm install -g @logicsrc/cli
logicsrc fleet --help

The verbs live in this package and the umbrella CLI wraps them as logicsrc fleet. To use the library directly:

npm install @logicsrc/openfleet

The files

Everything lives under $OPENFLEET_HOME, default ~/.openfleet:

| Path | What | | --- | --- | | fleets/<fleet>/members/<member>.json | One record per member, written before it starts, never changed after member.start. | | fleets/<fleet>/ledger.jsonl | The append-only ledger for this host. ledger.<host>.jsonl copies from other hosts are merged by at. | | fleets/<fleet>/marks/<event>.<id> | Once-markers for member.start, member.end and swarm.end, so two writers never double a line. | | current | The fleet the account's next root member joins. Absent means the implicit <user>@<host>. | | sessions/<session_id>.json | The Claude Code hooks' own lookup, not part of the spec. |

Files are 0600 and directories 0700.

The five verbs

# Sysop only: mint a fleet, set its whole ceiling, write fleet.open and current.
logicsrc fleet open team --approvals bypass --budget "20 USD" --depth 2 --fan-out 4 --hosts dev,netcup --until 2h

# Sysop only: set a fleet's whole ceiling, or narrow a running swarm's. Members now above it are stopped.
logicsrc fleet cap team-20260913 --approvals native
logicsrc fleet cap create-two-0541 --fan-out 2

# Anyone: the tree, from the ledger, the records and the engine rosters. Run by the sysop it also
# stops what is past its deadline or over its budget (rule 6) and marks lost what its engine no longer lists.
logicsrc fleet tree
logicsrc fleet tree anthony@dev --json

# Anyone, within reach: end a member, a swarm (nested swarms first), or a whole fleet through each member's engine.
logicsrc fleet stop create-two-0541
logicsrc fleet stop team-20260913 --fleet

# Anyone: the ledger, in order, with who did it.
logicsrc fleet log --swarm create-two-0541
logicsrc fleet log --since 2h --json

Every verb takes --json. open and cap refuse with exit 4 when the process carries OPENFLEET_MEMBER: that process is an agent. stop refuses outside the caller's own subtree the same way. An engine that will not end a member leaves it without an end line and the verb exits 3.

stop goes through the member's own engine: claude stop <job id> for claude-code, moshcode herd kill for moshcode/*, tmux kill-pane for tmux, a signal to the pid for claude-p.

Claude Code hooks

logicsrc fleet hooks install    # merges five entries into ~/.claude/settings.json, never clobbers
logicsrc fleet hooks status
logicsrc fleet hooks remove     # takes out only ours

With the hooks installed every Claude Code session becomes a recorded member: SessionStart claims the record OPENFLEET_RECORD names, derives a child under a claimed one, or writes a root record; UserPromptSubmit checks the ceiling with the permission mode the engine reports and writes member.start, or refuses the first prompt with exit 2; PreToolUse denies an Edit or Write outside piece.owns; Stop and SessionEnd write member.end. A hook never fails the engine. logicsrc fleet hook <Event> is the entry point the settings file calls.

Environment

| Variable | Meaning | | --- | --- | | OPENFLEET_HOME | The root directory. Default ~/.openfleet. | | OPENFLEET_RECORD | The absolute path of this member's record. | | OPENFLEET_FLEET | A copy of the record's fleet; in the sysop's shell, the fleet new roots join. | | OPENFLEET_MEMBER | A copy of the record's member. Present means this process is an agent. | | OPENFLEET_SWARM | A copy of the record's swarm, when it carries one. |

Library

import { context, claimOrDerive, startMember, endMember, fold, renderTree, readLedger } from "@logicsrc/openfleet";
import { registerOpenFleetCommands } from "@logicsrc/openfleet/commands";

context(env) answers which fleet and which member a process is. claimOrDerive is the engine-side rule from the spec's "Claiming and deriving". fold builds the tree tree renders. registerOpenFleetCommands(command, deps) mounts the verbs on a commander command with every world-touching dependency injectable.

License

MIT. The specification text is CC BY 4.0.