Distilly: Turn personal experience into versioned Agent Person Profiles
A local tool that turns personal material into reviewable, rollback-capable Agent profiles without another model key.
GitHub titanwings/distilly Updated 2026-09-10 Branch distilly-plugin Stars 24.5K Forks 2.1K
TypeScript Agent Skill MCP Codex OpenClaw Hermes Local-first

🧭 Decision Guide

Try it if you

  • You use Codex and can accept the 0.1.0-preview.1 Developer Preview.
    The README sections “Install the Developer Preview” and “The first usable flow” state that the Codex Native Plugin flow is verified.
  • You run OpenClaw 2026.3.24 or Hermes v0.9.0 and need the briefing transport path.
    The README “Host compatibility” section records transport-capacity fixtures of 65,536 bytes for OpenClaw and 49,752 bytes for Hermes.
  • You need to process TXT, Markdown, JSON, SRT/VTT, pasted text, or public URLs.
    The README “Local material formats” lists the file formats and sources accepted by the first Preview.
  • You need five MCP tools plus promote, reject, and rollback in the local Panel.
    The README “The first usable flow” lists the five tools and the candidate-profile review flow.

Skip it if you

  • You require a formal tagged release or npm package rather than the 0.1.0-preview.1 preview branch.
    The README explicitly says the current version is unreleased 0.1.0-preview.1 and is neither a tagged release nor an npm package.
  • You use Claude Code, DeepSeek Harness, Pi agent, Grok Build, or OpenCode and require a verified Plugin.
    The README “Host status” marks these hosts as exact fixture needed or community binding planned.
  • You need to import PDFs, emails, provider exports, or hosted connectors.
    The README “Local material formats” explicitly lists these as follow-up work.
  • You require packaged restart, long-lived Skill, and uninstall lifecycle validation for OpenClaw or Hermes.
    The README “The first usable flow” says these checks are separate, while “Host status” marks lifecycle as pending.

Requirements

  • Install the Developer Preview from the distilly-plugin branch.
  • Build with Node 22.19+ or Node 24.
  • Codex, OpenClaw 2026.3.24, and Hermes v0.9.0 enable setup only when the recorded host version and release tuple match.
  • Input material must be explicitly supplied TXT, Markdown, JSON, or SRT/VTT files, pasted text, or public URLs.
  • Legacy Skill mode requires installation from the dot-skill branch, with the final directory named distilly.
  • Do not let Legacy collectors share the same ~/.distilly/ namespace with the Plugin.

First step (verbatim from README)

openclaw plugins inspect distilly --json

Watch out

  • Keep only one distilly in the host discovery scope or the host may load the wrong copy.
    The README Legacy fallback requires exactly one active distilly and verification of which copy the host loaded.
  • Symlinked selected files and duplicate file names are rejected.
    The README “Local material formats” explicitly lists both rejection rules.
  • When the verified capacity is exceeded, the system does not silently truncate; it reports a capacity error and leaves stored data unchanged.
    The README “The first usable flow” specifies this behavior for complete briefings and profile prompts.
  • OpenClaw and Hermes capacities are transport/value lower bounds and do not guarantee the same context remaining for every model.
    The README “Host compatibility” limits the scope of the 65,536-byte and 49,752-byte measurements.

Alternatives

  • dot-skill Legacy Skill compatibility mode:It is better when the host has no verified Plugin binding and you only need local-file and pasted-text compatibility.
    Host compatibility and explicit Legacy fallback
  • Manual saved/private Skill:It is better for Grok Bot because the README does not claim local repository import support.
    Host status

Not stated in the README

  • The For a human section is omitted, so the human-facing workflow cannot be assessed.
  • The material does not specify supported operating systems, CPU, memory, or disk requirements.
  • The material does not provide the complete build, dependency-installation, or distilly setup --host codex shell commands.
  • The material does not specify the Person Profile data structure or whether SQLite is available in the Developer Preview.
  • The material does not specify which websites, authentication methods, or scraping limits apply to public URLs.
  • The material does not describe the maintenance roles or response times of the 4 contributors.
  • The material does not state the dates or release cadence represented by 1 release and 10 recent commits.
  • The material does not explain why the project is receiving attention on the GitHub Trending monthly list on 2026-09-10.

💡 Deep Analysis

6
No My persona pipeline primarily uses PDFs, emails, provider exports, and hosted connectors for bulk material collection. Can the current Distilly Preview serve as this ingestion pipeline directly?
For: A digital-human or knowledge-distillation developer who needs PDF, email, provider exports, and hosted connectors for bulk persona creation

No. The current Preview should not be used directly for this ingestion pipeline because its supported input boundary explicitly excludes those sources.

  • The README section “Local material formats” lists only explicitly supplied TXT, Markdown, JSON, SRT/VTT files, pasted text, and public URLs.
  • The same section explicitly says that PDF, email, provider exports, and hosted connectors are follow-up work rather than current capabilities.
  • Distilly’s ingestion boundary requires files to come from paths or sources explicitly supplied by the user, and it rejects symlinked selected files and duplicate file names. That does not amount to support for bulk synchronization from third-party platforms.
  • The current workflow is better suited to importing already selected material and producing an evidence-bound briefing and versioned Person Profile than to external collection, credential management, or connector orchestration.

If the inputs can first be converted into a supported format, the persona research and review workflow remains usable. If native PDF, email, or hosted-export ingestion is mandatory, the current project does not meet the constraint.

  • README, “Local material formats”: “The first Preview accepts explicit local TXT, Markdown, JSON, and SRT/VTT files”
  • README, “Local material formats”: “It also accepts pasted text and public URLs”
  • README, “Local material formats”: “PDF, email, provider exports, and hosted connectors are follow-up work”
  • README, “Local material formats”: “symlinked selected files and duplicate file names are rejected”
Not stated in the README:The README does not specify fidelity requirements when external sources are converted into TXT, Markdown, JSON, or SRT/VTT;The README does not define the future interfaces or timeline for PDF, email, and hosted connector support
No I must use a persona Skill on Claude Code, DeepSeek Harness, Pi agent, or OpenCode, but these hosts lack complete Native Plugin fixtures. Can I use Legacy Skill as an equivalent substitute and still claim SQLite, five-tool MCP, and Plugin lifecycle support?
For: An advanced user who needs to deploy a persona Skill on Claude Code, DeepSeek Harness, Pi agent, or OpenCode without accepting an unverified Plugin integration

No. Legacy Skill is not an equivalent substitute; it provides a narrowly scoped file-based compatibility path and does not represent SQLite, five-tool MCP, or Plugin lifecycle support.

  • The Host status table lists Claude Code, DeepSeek Harness, Pi agent, and OpenCode with explicit dot-skill Legacy Skill routes rather than Native Plugin support.
  • The README states that Legacy is a separate file-based implementation with a different supported data model. It explicitly says not to claim SQLite, five-tool MCP, Panel, or Plugin lifecycle support.
  • The manual compatibility promise currently covers only local files and pasted text. PDF, email, provider exports, and hosted connectors are outside the supported scope.
  • Enabling old collectors while the Plugin uses the same ~/.distilly/ namespace may write credential configuration and cross the Preview’s reviewed security boundary. The README also requires exactly one active distilly in each host discovery scope.

Legacy is therefore suitable for maintaining basic Skill discoverability, but not for replacing a verified Plugin or expanding the supported feature claims.

  • README, “Host status”: Claude Code, DeepSeek Harness, Pi agent, and OpenCode use “Explicit dot-skill Legacy Skill”
  • README, “Host compatibility and explicit Legacy fallback”: “Do not run Plugin setup or claim SQLite, five-tool MCP, Panel, or Plugin lifecycle support”
  • README, “Host compatibility and explicit Legacy fallback”: “This is an explicit, separate file-based implementation”
  • README, “Local material formats”: “PDF, email, provider exports, and hosted connectors are follow-up work”
git clone --single-branch --branch dot-skill --depth 1 \
  https://github.com/titanwings/distilly.git \
  <target-directory>
git -C <target-directory> rev-parse HEAD
Not stated in the README:The README does not describe behavioral differences or discovery-refresh mechanisms for these Legacy hosts;The README does not provide a completion timeline for Native Plugin support on Claude Code, DSH, Pi agent, or OpenCode
Yes I use Codex and have TXT, Markdown, JSON, and SRT/VTT materials. I want the Agent to learn an expert’s work habits and communication style, while reviewing versions before permanent installation. Is Distilly suitable?
For: An individual user or small team using Codex who wants to turn expert materials into an auditable and rollback-capable Person Profile

Yes, because Codex is currently the most completely verified host and supports the full workflow.

  • The README section “The first usable flow” states that Codex verifies the complete path: importing materials, resolving a person, creating an evidence-bound briefing, committing a versioned Person Profile, submitting corrections, reviewing or rolling back candidates, and installing an approved Skill.
  • Supported inputs are explicitly supplied TXT, Markdown, JSON, SRT/VTT files, pasted text, and public URLs. The system rejects symlinked selected files and duplicate file names.
  • The model-facing surface is limited to five MCP tools: distilly_get, distilly_ingest, distilly_pending, distilly_commit, and distilly_correct. If a profile is too large, Distilly reports a capacity error instead of silently truncating it.

The README does not provide a complete Codex installation command, and the project has only one published release, v0.01. Therefore, this suitability applies mainly to the Developer Preview and controlled use, not to a guaranteed production-stable deployment.

  • README, “The first usable flow”: “On Codex, the complete flow below is verified”
  • README, “Local material formats”: “accepts explicit local TXT, Markdown, JSON, and SRT/VTT files”
  • README, “The first usable flow”: “The model-facing surface remains exactly five MCP tools”
  • Project data: latest release is v0.01 and release_count is 1
Not stated in the README:The README does not provide the complete Codex Developer Preview installation command or all dependency configuration details;The README does not specify recommended material volume per person, review-panel details, or upgrade compatibility policy
It depends I am pinned to OpenClaw 2026.3.24 and want to integrate Distilly through the Claude-compatible bundle. I need to know whether the 65,536-byte budget is enough for long-term Skills, restart, and uninstall flows. Is it suitable now?
For: An integration developer maintaining OpenClaw 2026.3.24 who needs to transport long briefings and verify MCP discovery

It depends: OpenClaw is suitable for validating briefing transport and five-tool discovery, but not yet for treating the full long-term lifecycle as production-verified.

  • The README records a 65,536-byte net transport budget for OpenClaw 2026.3.24 and says that a transport-capacity fixture exists for that version.
  • OpenClaw loads the Claude-compatible bundle from ~/.openclaw/extensions/distilly; discovery can be checked with openclaw plugins inspect distilly --json.
  • However, “The first usable flow” explicitly says that packaged restart, long-lived Skill, and uninstall lifecycle checks for OpenClaw remain separate and unverified.
  • An unrecorded host version, release digest, tool descriptor, or serializer tuple returns host_unsupported before writing. Distilly does not automatically switch to the Legacy implementation.

Thus, the integration is justified for validating material ingestion and briefing transport. The current evidence is insufficient if the deployment depends on durable Skills, upgrades, or uninstall behavior.

  • README, “Host compatibility and explicit Legacy fallback”: “65,536 serialized bytes for OpenClaw”
  • README, “Host compatibility and explicit Legacy fallback”: `openclaw plugins inspect distilly --json`
  • README, “The first usable flow”: OpenClaw’s packaged restart, long-lived Skill, and uninstall lifecycle checks “remain separate”
  • README, “Host compatibility and explicit Legacy fallback”: “Any unrecorded version ... returns host_unsupported”
Not stated in the README:The README does not say when OpenClaw long-lived Skill, restart, and uninstall checks will be completed;The README does not state how much real-world profile content fits within the 65,536-byte budget
It depends I am pinned to Hermes v0.9.0. I want Distilly installed at `~/.hermes/skills/distilly`, exposing exactly five MCP tools and transporting complete briefings. I also need restart, long-lived Skill, and uninstall behavior to be verified. Should I use this route?
For: An Agent integration developer using Hermes v0.9.0 who requires exactly five exposed MCP tools and local configuration

It depends: Hermes has a documented installation path and a verified briefing-transport fixture, but its complete lifecycle is not verified and should not be treated as production-complete.

  • The README specifies ~/.hermes/skills/distilly, ~/.distilly/bin/distilly-hermes, and ~/.hermes/config.yaml. It also disables resources and prompts so that exactly five tools remain exposed.
  • Hermes v0.9.0 has a recorded net budget of 49,752 bytes, and the README says its briefing transport path is verified against that fixture.
  • MCP discovery can be checked with hermes mcp test distilly, but the Host status table still marks restart, long-lived Skill, and uninstall lifecycle checks as pending.
  • Unrecorded versions or serializer combinations are rejected before writing, and a failed Plugin preflight does not automatically switch to Legacy mode.

This makes Hermes suitable for controlled MCP and briefing integration, but not for assuming that persistence, upgrades, and uninstall behavior are already delivered capabilities.

  • README, “Host compatibility and explicit Legacy fallback”: “Hermes installs the canonical Skill at ~/.hermes/skills/distilly”
  • README, “Host compatibility and explicit Legacy fallback”: “49,752 serialized bytes for Hermes”
  • README, “Host compatibility and explicit Legacy fallback”: `hermes mcp test distilly`
  • README, “Host status”: Hermes lifecycle is pending
Not stated in the README:The README does not define which scenarios are covered by Hermes restart, long-lived Skill, and uninstall validation;The README does not state how much usable context remains for different models under the 49,752-byte budget
It depends I need to reuse one persona profile across Codex, OpenClaw, and Hermes. The materials include work habits and communication traits, and I require local data, traceable corrections, and cross-host deployment. Can Distilly meet this requirement?
For: An advanced integration user deploying persona profiles across multiple Agent hosts while requiring local storage, traceability, and protection of sensitive material

It depends: Distilly’s local-first, versioned, and correction-aware model matches the requirement, but cross-host deployment is constrained by recorded fixtures, transport capacity, and incomplete lifecycle validation.

  • The project insight describes local data as authoritative and supports evidence-bound briefings, versioned Person Profiles, explicit corrections, and local-panel approval, rejection, or rollback of candidate versions.
  • Codex has the complete flow verified. OpenClaw 2026.3.24 and Hermes v0.9.0 have recorded briefing-transport fixtures, but long-lived Skills, complete restart behavior, and uninstall lifecycles are not all verified.
  • The hosts have different transport budgets: 65,536 bytes for OpenClaw and 49,752 bytes for Hermes. When the complete value exceeds a verified budget, Distilly rejects the transfer and leaves stored data unchanged.
  • The README requires keeping exactly one discoverable distilly instance and checking which copy was actually loaded. Local-first does not remove the user’s responsibility for permissions around local files, host processes, and public URLs.

It is therefore suitable for controlled cross-host profile reuse, but not for promising identical persistence, upgrade, and uninstall behavior across all hosts.

  • Project insight, “solution_analysis”: local-first, evidence binding, versioned Person Profile, correction, review, and rollback
  • README, “The first usable flow”: “lets you promote, reject, or roll back the candidate in the local Panel”
  • README, “Host compatibility and explicit Legacy fallback”: 65,536 bytes for OpenClaw and 49,752 bytes for Hermes
  • README, “The first usable flow”: “never silently truncates ... keeps the stored data unchanged”
  • README, “Host compatibility and explicit Legacy fallback”: “Keep exactly one distilly active in any host discovery scope”
Not stated in the README:The README does not explain Person Profile version synchronization or conflict handling across multiple hosts;The README does not state whether the local Panel provides complete audit logs, access control, or team collaboration permissions;The README does not establish the exact encryption and isolation behavior for sensitive material in host processes and public-URL research

✨ Highlights

  • Stores versioned Person Profiles locally without an additional model API key
  • Codex, OpenClaw 2026.3.24, and Hermes v0.9.0 have host fixtures
  • The model-facing surface has five MCP tools with correction, review, and rollback
  • The Developer Preview remains 0.1.0-preview.1 and is not tagged or on npm

🔧 Engineering

  • Imports TXT, Markdown, JSON, and SRT/VTT to create evidence-bound Person Profiles
  • Manages profile versions with distilly_ingest, distilly_commit, and distilly_correct
  • Codex uses the Native Plugin, while OpenClaw and Hermes use compatibility bindings

⚠️ Risks

  • 0.1.0-preview.1 is neither a tagged release nor an npm package
  • An unrecorded host version returns host_unsupported before setup writes integration data
  • Restart and uninstall lifecycle checks remain pending for OpenClaw and Hermes
  • Legacy collectors may write credential configuration into the same ~/.distilly/ namespace

👥 For who?

  • Agent developers using Codex, OpenClaw 2026.3.24, or Hermes v0.9.0
  • Teams needing to turn local TXT, Markdown, or public URLs into reviewable person profiles
  • Developers who want to reuse personal judgment and voice through five MCP tools