titanwings/distilly

Distilly — Distill how they think into reusable Skills for any Agent or Bot. Formerly Colleague Skill(原同事 Skill).

🧬 Distilly – Person‑Profile Builder for AI Agents

What it is – An open‑source Python library (and set of Agent Skills) that turns a collection of messages, documents, interviews, or public content into a source‑grounded “Person Profile”. The profile is packaged as an Agent Skill that can be installed in a variety of AI‑agent platforms (Claude Code, Hermes, OpenClaw, Codex, DeepSeek Harness, Pi, Grok Build, OpenCode, etc.).

Why it matters – Modern conversational agents are starting to support personalities or knowledge bases that persist across sessions. Distilly provides a systematic way to capture the experience, judgment, voice, and work habits of a real or fictional person and reuse that model across agents, without claiming to clone the individual.


🎯 Core capabilities

Capability How it works
Three “person families” colleague (work‑focused), relationship (personal‑tone), celebrity (public figure). Each family has its own data‑collection strategy, analysis dimensions, and profile schema.
Source‑grounded profiling Ingests messages (Slack, Lark, DingTalk, X, WeChat, email, markdown, PDFs, etc.), extracts observable decisions, expression patterns, and workflow habits, then merges them into a structured profile.
Skill packaging The generated profile is emitted as an Agent Skill (e.g., colleague‑byte‑dance‑backend.skill). Skills can be installed locally on any supported host.
Multi‑host support Native discovery for eight agents: Claude Code, Hermes‑Agent, OpenClaw, OpenAI Codex, DeepSeek Harness, Pi, Grok Build, OpenCode.
Versioning & correction Updates are appended, never overwrite; every change is archived and can be rolled back. Users can issue correction commands (e.g., “they wouldn’t say that”) that instantly edit the profile.
Celebrity research pipeline For public figures, a six‑dimension pipeline (subtitles → transcript cleanup → merge → quality check) builds a research dossier covering works, interviews, decisions, expression DNA, external evaluations, and timeline.
Personal‑agent hand‑off Profiles can be written to the personal‑agent’s “memory file” (e.g., ~/.claude/CLAUDE.md) so a new agent starts with the person’s model already loaded.

📦 Supported data sources

Source Message access Document access Notes
Lark ✅ API (auto) ✅ API Just give a name; the bot joins the chat automatically
DingTalk ⚠️ Browser‑only ✅ API History not fully available via API
Slack ✅ API — Requires admin‑installed bot; free plan limited to 90‑day history
X (Twitter) ✅ API — Optional, via third‑party Xquik service
WeChat ✅ SQLite export — Export first with WeChatMsg or PyWxDump
Email (.eml, .mbox) ✅ — Manual upload
PDF / Images / Screenshots — ✅ Drag‑and‑drop upload
Markdown / direct paste ✅ ✅ Inline entry

⚡ Installation

  1. For agents – In the target agent’s UI, run:
    Install Distilly from https://github.com/titanwings/distilly
    
    The host will discover the distilly skill and place it in its skill directory.
  2. For developers / humans – Clone the repo into the skill directory used by your host:
    git clone https://github.com/titanwings/distilly <DISTILLY_SKILL_DIR>
    
    Detailed OS‑specific steps, credential setup, and migration notes are in INSTALL_EN.md.

🚀 Typical workflow

  1. Start the creator – Tell your agent “Use Distilly to set up my profile.” The creator interviews you (5 min) and stores the result at `/.distilly/owner/profile.md`.
  2. Create a profile for someone else – In the agent, say:
    Use Distilly to create a Person Profile for <person>
    
    • Choose a family (colleague / relationship / celebrity).
    • Provide a short description and/or upload source material.
    • Review the generated profile; approve or request corrections.
  3. Skill generation – Distilly outputs a skill folder named {family}-{slug} (e.g., celebrity-andrej-karpathy.skill). Install this folder into any supported host.
  4. Agent usage – The agent can now answer questions or act “as” that person, using the profile’s rules, tone, and decision heuristics.

📚 Demo snippets (from the README)

Celebrity – Andrej Karpathy:

celebrity.skill ❯ Everyone's doing demos, nobody's doing eval.
                  The Agent bottleneck was never model intelligence — it's scaffolding…

Colleague – ByteDance backend engineer:

colleague.skill ❯ Hold on — what's the impact? … N+1 query, fix it.

Relationship – a crush:

relationship.skill ❯ ...I did, a little bit. Why are you asking?

📄 Technical background

  • The original research paper COLLEAGUE.SKILL (arXiv 2605.31264) describes the two‑layer architecture (Persona + Work Skill) and the automated skill‑generation pipeline. Distilly extends that work to the relationship and celebrity families and adds multi‑host skill packaging.
  • Profiles are version‑controlled; each update creates an archive entry, enabling rollback.
  • All code is released under the MIT License.

🤝 Community & ecosystem


📦 Quick start (one‑liner for a local Claude Code host)

# From a terminal inside the Claude Code skill directory
git clone https://github.com/titanwings/distilly ~/.claude/skills/distilly && \
    echo "Distilly installed – ask your Claude agent to create a profile!"

📜 Citation

If you use Distilly in research or a product, cite the accompanying arXiv paper:

@misc{zhou2026colleagueskill,
  title        = {COLLEAGUE.SKILL: Automated AI Skill Generation via Expert Knowledge Distillation},
  author       = {Tianyi Zhou and Dongrui Liu and Leitao Yuan and Jing Shao and Xia Hu},
  year         = {2026},
  eprint       = {2605.31264},
  archivePrefix = {arXiv},
  primaryClass = {cs.AI},
  url          = {https://arxiv.org/abs/2605.31264}
}

🛡️ License

MIT – free for commercial and non‑commercial use.

Written about in

Related

  • Project
  • Project
  • Project
  • Dispatch
  • Project