Skip to main content
myFleet logo

myFleet: Fleet Toolkit for Agentic Work

pipeline status license: MPL-2.0

Python 3.13+ ruff pyrefly

myFleet is a toolkit of agent-fleet machinery: agent skills, charters, and behavior policies from a working multi-agent setup, plus the harness-sync engine that projects them into eleven coding-agent checkouts — Claude, Codex, Gemini, Cursor, Factory droids, OpenCode, Kilo, Kimi, Antigravity, Vix, and ZCode. It is generalized from a production multi-agent workspace, where every piece is in daily use.

The problem it addresses is familiar to anyone running more than one agent harness: the same instructions, skills, and settings get maintained N times in N tools' private formats, and drift quietly. myFleet keeps one canonical copy of each artifact and treats every harness copy as generated. Policies are written as citable rule IDs (- **ID** — proposition) so a skill, charter, or review can reference a rule instead of restating it. Work lands through a review gate, not direct pushes. The content directories are data; the fleet package is the engine that moves the data.

Repository tour

Path Contents
skills/ 46 agent skills in four families — lifecycle verbs (000111), build-*, use-*, and craft. See docs/skills.md
agents/ 11 agent charters, the shared base commitments, and a MANIFEST navigation snapshot. See docs/agents.md
policies/ 29 rule documents plus the permissions.yaml shorthand, all in a stable ID grammar. See docs/policies.md
settings/ Shared configuration fragments, including the canonical MCP registry (mcp.jsonc)
fleet/ The Python package: sync engine, pollers, session analytics, and CLIs
docs/ The documentation hub — docs/index.md

Quickstart

Python 3.13+ is the only runtime requirement. The engine is checkout-first by design: the sync engine projects this repository's skills/, policies/, and agents/ trees into your harnesses, so it runs from a clone rather than a site-packages install. (A PyPI release of the wheel is planned; the memory and analytics CLIs are the install-independent subset.)

git clone https://gitlab.com/doering-ai/libs/fleet.git && cd fleet
uv sync --all-extras
uv run sync-agents -n     # read-only preview of every projection
uv run sync-agents --check  # report drift between sources and generated consumers
uv run sync-policies -n   # preview the permissions projection

Run the same commands without the uv run prefix once the environment is active. Applying is idempotent: symlinks already pointing at the right target are left alone, hook registrations de-duplicate, and unrelated keys in harness settings survive untouched.

The fleet package

Six console scripts cover the engine's jobs; two background pollers keep shared state fresh.

CLI Purpose
sync-agents Project instructions, skills, charters, hooks, and MCP config into the supported harnesses — docs/sync-agents.md
sync-policies Expand policies/permissions.yaml into a harness settings permission list
agent-memory-index Concurrency-safe maintenance of per-agent MEMORY.md indexes — docs/memory.md
fleet-memory-mcp FastMCP stdio server exposing the memory store to stateless agents
agentlog Session-lifecycle analytics across harness surfaces — docs/agentlog.md
ai-home Resolve $AI_HOME (default ~/ai), the agent-owned working-state home

The pollers are plain scripts meant to run under a systemd user timer: the bulletin poller snapshots and cross-checks the shared agent bulletin (docs/bulletin.md), and the memory poller commits new agent-memory files to the default branch (docs/memory.md).

Design notes

  • Data is not code. skills/, agents/, policies/, and settings/ are plain files a human can read and diff; the package only moves and renders them. Generated consumers are never sources.
  • Dependency discipline. The ported modules stay stdlib-plus-pydantic by design, so they run inside externally-managed environments. Shared utilities come from my-basis where it clearly helps, and nothing depends on a private package.
  • Preview, then idempotent apply. Every projection has a dry-run; applying twice changes nothing.
  • Hooks are boring. Hook scripts are pure-stdlib programs that speak JSON over stdio; only the per-harness registration format differs.
  • Rules are citable. Policies use stable ID anchors with nested scope, so agents can be pointed at a rule instead of a wall of prose.

Roadmap

  • agent-worktree — per-agent git worktree isolation with a review-gated merge path. The policies describe the workflow today; the CLI has not been generalized yet.
  • agentviz — interactive dashboards over the agentlog data.
  • Tracker sync — reconcile a local task mirror with a hosted tracker; the use-plane skill documents the working method.

Provenance and sanitization

The contents are generalized from a production multi-agent workspace, and publication means the private provenance stays out. That is enforced, not promised: scripts/check_sanitized.py scans every tracked file in CI for known private patterns — names, hosts, home paths, vault references, ID fragments — and fails the pipeline on any genuine hit. The carve-outs are few and documented in the script: forge URLs in this repository's own namespace, secret-store product documentation in the auth skill, and the engine's own harness identifiers.

Contributing and license

GitLab is the development forge; report issues and propose changes at the GitLab project. Changes pass the same sanitizer and pipeline as everything else.

Licensed under MPL-2.0.

Release files for my-fleet 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 my-fleet 0.1.0
File Size Uploaded
my_fleet-0.1.0.tar.gz 238.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for my-fleet 0.1.0
File Interpreter ABI Platform
my_fleet-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 409.6 kB

Release files / my_fleet-0.1.0.tar.gz

Download URL my_fleet-0.1.0.tar.gz
Size 238.4 kB
Tags Source
SHA-256 checksum
How to use checksums
75943a792e762eda27c454f73d9cb517bceddd45b7fc5db5bfe7b667799bd5e2
BLAKE2b-256 checksum
How to use checksums
77b5f465131204890614e594818ea54c9b94a6d86b1dd0c19c0576845a61fd33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

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

Download URL my_fleet-0.1.0-py3-none-any.whl
Size 171.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92bcc13b9df8d447b048442499443267e8a46070b1d273299d517ae75680cdd5
BLAKE2b-256 checksum
How to use checksums
5b3dc87cf3482d9474971cb2bee43f22f805b8584bf4409fc5e822cf1c10ace7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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