Distilly generates a profile file, not a living agent
The project formerly called Colleague Skill is now Distilly. Its creator takes material about one person and writes a Person Profile packaged as an Agent Skill. Three profile families cover colleagues, relationships, and public or fictional figures. The result contains observed preferences, decision patterns, expression, and corrections that a compatible agent can consult while answering or working.
That output is deliberately smaller than an agent platform. It does not run a model service, maintain a server, or claim to clone a mind. A generated profile is a SKILL.md with installation metadata, and the host supplies the model and tools. This makes profiles portable, inspectable, and easy to delete, although their quality and safety depend on the source material and generated instructions.
Eight hosts can discover the same skill format
The August 24, 2026 README lists native local skill discovery for Claude Code, Hermes, OpenClaw, Codex, DeepSeek Harness, Pi, Grok Build, and OpenCode. Each host uses a different directory and invocation style. The install guide maps the user and project locations, while dedicated scripts copy Distilly into canonical Codex, Hermes, or OpenClaw locations.
Claude Code loads it from a distilly directory under its skills path; Codex uses .agents/skills/distilly at project level or the user equivalent. Generated profiles can then be installed for a chosen host. The installer copies only the profile's SKILL.md and a small manifest, not the private source directory. That boundary is sensible, but users should inspect the installed file because it is still agent instruction.
What happened when we ran it
Our sandbox cloned commit 7a77c7c into a fresh Debian container with 3 CPUs and 8 GB of RAM. Installing 42 Python packages took 19 seconds and consumed 193 MB. The build completed in 5 seconds, then pytest passed 35 of 35 tests in 12 seconds. Pip-audit reported 0 known vulnerabilities.
The repository was compact beside the other projects in this batch: 107 files, about 8,162 source lines, and 5.5 MB checked out. It had one CI workflow, a tests directory, and no Dockerfile. These numbers cover the checked-out Python tools and tests. We did not connect a workplace account, upload real chat history, or judge whether a generated profile resembled a person.
The clean test result lowers the cost of trying the local pipeline. It does not validate the social claim at the center of the project. A profile can quote the right phrases and still misstate someone's judgment, flatten context, or preserve information they expected to disappear. Evaluation needs the subject or a knowledgeable reviewer, plus examples that were withheld from generation.
Collection reaches into sensitive systems
Distilly accepts pasted text, Markdown, PDFs, images, email archives, Feishu exports, Slack, DingTalk, WeChat history, and bounded public X material. Automated Feishu collection can read group messages and documents; private-chat collection requires user identity, OAuth scopes, and a chat ID. Slack requires an administrator to install a bot, while DingTalk history uses browser collection because its API does not provide it.
Those sources contain more than the target person's words. Group chats include coworkers, private conversations include both participants, and emails can include customers or confidential attachments. The install guide says not to commit credentials and stores collector configuration under ~/.distilly/. International Lark routing is not implemented; the current collector targets China-region Feishu endpoints. Collection breadth is useful only when authorization matches it.
Privacy controls are still being strengthened
Open pull request 136 proposes a blocking privacy screen for relationship material, explicit consent before writing files, separate consent before host installation, and another gate before gallery publication. It would flag identifiers, third-party speakers, and sensitive categories while stating what pattern matching cannot detect. The proposal says silence must not count as consent.
The important word is proposes. Until that pull request is merged into the branch you install, buyers should not describe those checks as shipped behavior. A local wrapper can require written consent, scan and redact inputs, restrict output permissions, set a retention date, and prohibit publication. Relationship archives deserve the strictest treatment because a participant may possess the chat export without having permission to turn the other person into an agent persona.
Open security issue 113 adds another practical warning: setup flows in several collectors used ordinary input() for secrets, causing tokens or passwords to appear in terminal scrollback and recordings. Open pull requests reference a move to hidden prompts, but an operator should inspect the exact checkout. Prefer short-lived OAuth tokens, limit scopes, and run collection from a private shell whose logs are controlled.
Current activity is strong, while release packaging is informal
The requested titanwings/colleague-skill URL now resolves to titanwings/distilly. GitHub reported 24,015 stars, 37 combined open issues and pull requests, and a last push on August 25, 2026. The latest-release API returned no release object, so pinning a commit is safer than assuming a stable GitHub release channel.
The README is English, the creator skill supports English and Chinese, and translated READMEs cover seven additional languages. The MIT license is simple. Distilly is worth using for a willing colleague who can review the output and correct errors. Its clean 35-test run is encouraging; the unresolved privacy and secret-input work keeps private relationship archives outside our recommendation for now.

