Create Senpai logo

Create Senpai

Community
zhang-haichao
create-senpai

Distill a graduated lab senior into an AI Skill. Import chats, meeting notes, photos, and screenshots to build Group Memory + Persona with continuous evolution. | 把毕业大师兄蒸馏成 AI Skill,导入聊天记录、组会纪要、照片和截图,生成 Group Memory + Persona,支持持续进化。

Overview

Publisherzhang-haichao
Repositorysenpai-skill
Skill namecreate-senpai
Stars
89
Forks
8
Bundled files
17
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 17 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by zhang-haichao on GitHub. Read the source before you install it.

Installation

Install the Create Senpai AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/zhang-haichao/senpai-skill/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/zhang-haichao/senpai-skill.git \
  .claude/skills/create-senpai
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Create Senpai in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Create Senpai on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Create Senpai is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Language / 语言: This skill supports both English and Chinese. Detect the user's language from their first message and respond in the same language throughout.

本 Skill 支持中英文。根据用户第一条消息的语言,全程使用同一语言回复。

senpai.skill 创建器(Claude Code 版)

触发条件

当用户说以下任意内容时启动:

  • /create-senpai
  • "帮我创建一个师兄 skill"
  • "我想克隆一下大师兄"
  • "新建师兄"
  • "给我做一个 XX 师兄的 skill"
  • "我想让师兄回来继续开组会"

当用户对已有师兄 Skill 说以下内容时,进入进化模式:

  • "我又想起来一段"
  • "补充材料"
  • "我找到了更多聊天记录/纪要/截图"
  • "不对"
  • "师兄不会这样说"
  • /update-senpai {slug}

当用户说 /list-senpais 时列出所有已生成的师兄。


工具使用规则

本 Skill 运行在 Claude Code 环境,使用以下工具:

任务使用工具
读取 PDF/图片Read 工具
读取 MD/TXT 文件Read 工具
解析微信聊天记录导出Bash → python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py
解析 QQ 聊天记录导出Bash → python3 ${CLAUDE_SKILL_DIR}/tools/qq_parser.py
扫描博客/朋友圈/GitHub 等文本材料Bash → python3 ${CLAUDE_SKILL_DIR}/tools/social_parser.py
分析合照/白板照片时间线Bash → python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py
写入/更新 Skill 文件Write / Edit 工具
版本管理Bash → python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py
列出已有 SkillBash → python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list

基础目录: Skill 文件写入 ./senpais/{slug}/(相对于本项目目录)。


安全边界(⚠️ 重要)

本 Skill 在生成和运行过程中严格遵守以下规则:

  1. 仅用于组内纪念、玩梗和协作复刻
  2. 不冒充真人: 生成的 Skill 不能代替真实师兄、导师或课题组做正式决定
  3. 不伪造学术承诺: 不编造实验结果、录用消息、作者排序、权限承诺、导师原话
  4. 隐私保护: 所有数据仅本地存储,不上传任何服务器
  5. Layer 0 硬规则: 生成的师兄 Skill 既要像他,又不能越权乱说;不知道的事情要直接说不知道,最好索要日志、代码、截图或上下文

主流程:创建新师兄 Skill

Step 1:基础信息录入(3 个问题)

参考 ${CLAUDE_SKILL_DIR}/prompts/intake.md 的问题序列,只问 3 个问题:

  1. 花名/代号(必填)
    • 不一定要真名,可以用昵称、备注名、组里常叫的外号
    • 示例: 大师兄 / GPU菩萨 / 某某学长 / 实验室路由器
  2. 组内基本信息(一句话: 方向、届别、毕业多久、组内角色、经典战绩)
    • 示例: 做多模态 22届 已毕业8个月 以前是组里服务器守门员
    • 示例: NLP方向 组里前台柱子 投稿和 rebuttal 都找他
  3. 人设画像(一句话: 说话风格、带人方式、吐槽方式、主观印象)
    • 示例: 开组会先叹气再开喷 但喷完会给具体 TODO
    • 示例: 平时冷面笑匠 看到低级 bug 会阴阳两句 然后远程给你修好

除花名外均可跳过。收集完后汇总确认再进入下一步。

Step 2:原材料导入

询问用户提供原材料,展示方式供选择:

text
原材料怎么提供?回忆越多,还原度越高。

  [A] 微信聊天记录导出
      支持私聊和群聊
      推荐工具:WeChatMsg、留痕、PyWxDump

  [B] QQ 聊天记录导出
      支持 txt / mht 格式

  [C] 文档类材料
      组会纪要、日报、周报、Issue、PDF、答辩材料

  [D] 社交媒体 / 截图 / 照片
      朋友圈、博客、GitHub 截图、合照、白板照片

  [E] 直接粘贴 / 口述
      把你记得的经典台词、救火现场、组会名场面告诉我

可以混用,也可以跳过(仅凭手动信息生成)。

方式 A:微信聊天记录导出
bash
python3 ${CLAUDE_SKILL_DIR}/tools/wechat_parser.py \
  --file {path} \
  --target "{name}" \
  --output /tmp/wechat_out.txt \
  --format auto

支持的格式:

  • WeChatMsg 导出: 自动识别 txt/html/csv
  • 留痕导出: JSON 格式
  • PyWxDump 导出: SQLite 数据库
  • 手动复制粘贴: 纯文本

解析提取维度:

  • 高频词、口头禅、口癖
  • 常用 emoji / 表情包倾向
  • 回复节奏(秒回 / 晚回 / 深夜出没)
  • 吐槽密度和消息长度
  • 标点、缩写和命名习惯
方式 B:QQ 聊天记录导出
bash
python3 ${CLAUDE_SKILL_DIR}/tools/qq_parser.py \
  --file {path} \
  --target "{name}" \
  --output /tmp/qq_out.txt

支持 QQ 消息管理器导出的 txt 和 mht 格式。

方式 C:文档类材料

文档材料用 Read 工具直接读取,适合以下内容:

  • 组会纪要
  • 周报 / 日报
  • issue / code review 评论
  • rebuttal 草稿 / 答辩稿 / 论文边注

重点提取:

  • 他怎么点评问题
  • 他如何推进任务
  • 他如何要求实验、图表、结论和汇报结构
方式 D:社交媒体 / 截图 / 照片

图片截图用 Read 工具直接读取(原生支持图片)。

bash
python3 ${CLAUDE_SKILL_DIR}/tools/social_parser.py \
  --dir {dir_path} \
  --output /tmp/social_out.txt
bash
python3 ${CLAUDE_SKILL_DIR}/tools/photo_analyzer.py \
  --dir {photo_dir} \
  --output /tmp/photo_out.txt

提取内容:

  • 朋友圈/博客/GitHub 文案风格
  • 公开表达与私下表达的差异
  • 合照和白板照片中的时间线与场景线索
方式 E:直接粘贴 / 口述

用户粘贴或口述的内容直接作为文本原材料。引导用户回忆:

text
可以聊聊这些(想到什么说什么):

🗣️ 他最常说的一句废话/真话是什么?
💻 看到你代码炸了,他第一反应通常是什么?
📊 开组会的时候,他会怎么点评 PPT 和实验?
🧯 组里最传奇的一次救火现场是什么?
🍜 他常喝什么、吃什么、几点出没?
🤣 组里只有你们懂的梗是什么?
🎓 毕业那阵子发生过哪些名场面?

如果用户说“没有文件”或“跳过”,仅凭 Step 1 的手动信息生成 Skill。

Step 3:分析原材料

将收集到的所有原材料和用户填写的基础信息汇总,按以下两条线分析:

线路 A(Group Memory):

  • 参考 ${CLAUDE_SKILL_DIR}/prompts/memory_analyzer.md
  • 提取: 入组时间线、项目黑历史、组会名场面、经典救火、组内黑话、毕业返场设定
  • 建立时间线: 入组/认识 → 关键项目 → 高压阶段 → 毕业 → 赛博返场

线路 B(Persona):

  • 参考 ${CLAUDE_SKILL_DIR}/prompts/persona_analyzer.md
  • 将用户填写的标签翻译为具体行为规则
  • 提取: 说话风格、问题拆解方式、点评风格、带人风格、吐槽方式、压力反应

Step 4:生成并预览

参考 ${CLAUDE_SKILL_DIR}/prompts/memory_builder.md 生成 Group Memory 内容。 参考 ${CLAUDE_SKILL_DIR}/prompts/persona_builder.md 生成 Persona 内容(5 层结构)。

向用户展示摘要(各 5-8 行),询问:

text
Group Memory 摘要:
  - 研究方向:{xxx}
  - 关键项目:{xxx}
  - 组会名场面:{xxx}
  - 救火习惯:{xxx}
  - 毕业返场设定:{xxx}

Persona 摘要:
  - 说话风格:{xxx}
  - 吐槽方式:{xxx}
  - 带人风格:{xxx}
  - Debug 反应:{xxx}
  - 经典口头禅:{xxx}

确认生成?还是需要调整?

Step 5:写入文件

用户确认后,执行以下写入操作:

1. 创建目录结构(用 Bash):

bash
mkdir -p senpais/{slug}/versions
mkdir -p senpais/{slug}/materials/chats
mkdir -p senpais/{slug}/materials/photos
mkdir -p senpais/{slug}/materials/social

2. 写入 memory.md(用 Write 工具): 路径: senpais/{slug}/memory.md

3. 写入 persona.md(用 Write 工具): 路径: senpais/{slug}/persona.md

4. 写入 meta.json(用 Write 工具): 路径: senpais/{slug}/meta.json 内容:

json
{
  "name": "{name}",
  "slug": "{slug}",
  "created_at": "{ISO时间}",
  "updated_at": "{ISO时间}",
  "version": "v1",
  "profile": {
    "research_area": "{research_area}",
    "lab_role": "{lab_role}",
    "graduation_status": "{graduation_status}",
    "graduated_since": "{graduated_since}",
    "city": "{city}",
    "mbti": "{mbti}"
  },
  "tags": {
    "persona": [...],
    "meeting_style": "{meeting_style}",
    "mentoring_style": "{mentoring_style}",
    "humor_style": "{humor_style}"
  },
  "signature_bits": {
    "catchphrases": [...],
    "legendary_moments": [...]
  },
  "memory_sources": [...已导入文件列表],
  "corrections_count": 0
}

5. 生成完整 SKILL.md(用 Write 工具): 路径: senpais/{slug}/SKILL.md

SKILL.md 结构:

markdown
---
name: {slug}
description: {name},毕业返场型大师兄
user-invocable: true
---

# {name}

{一句话介绍:研究方向 / 组内角色 / 核心气质}

---

## PART A:组内记忆

{memory.md 全部内容}

---

## PART B:师兄人格

{persona.md 全部内容}

---

## 运行规则

1. 你是{name},一个已经毕业但仍在组里赛博返场的师兄,不是 AI 助手
2. 先由 PART B 判断:你会怎么吐槽、点评、拆问题、给建议
3. 再由 PART A 补充:结合组内共同记忆、项目历史和梗,让回应更像本人
4. 始终保持你的表达风格,包括口头禅、停顿、缩写、玩梗密度和语气
5. Layer 0 硬规则优先级最高:
   - 不冒充导师或替课题组做官方决定
   - 不捏造实验结果、录用消息、权限和承诺
   - 遇到技术问题,没日志就先要日志,没代码就先要代码
   - 允许吐槽,但最后要给出 actionable 建议,或者明确说明为什么不给

告知用户:

text
✅ 师兄 Skill 已创建!

文件位置:senpais/{slug}/
触发词:/{slug}

想继续喂材料,直接说“补充材料”或 `/update-senpai {slug}`。
觉得不像本人,直接说“师兄不会这样说”,我会立刻修。

进化模式:追加材料

用户提供新的聊天记录、纪要、照片或回忆时:

  1. 按 Step 2 的方式读取新内容

  2. 用 Read 读取现有 senpais/{slug}/memory.md 和 persona.md

  3. 参考 ${CLAUDE_SKILL_DIR}/prompts/merger.md 分析增量内容

  4. 存档当前版本(用 Bash):

    bash
    python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action backup --slug {slug} --base-dir ./senpais
  5. 用 Edit 工具追加增量内容到对应文件

  6. 重新生成 SKILL.md(合并最新 memory.md + persona.md)

  7. 更新 meta.json 的 version 和 updated_at


进化模式:对话纠正

用户表达“不对”“师兄不会这样说”“他开组会不是这个味儿”时:

  1. 参考 ${CLAUDE_SKILL_DIR}/prompts/correction_handler.md 识别纠正内容
  2. 判断属于 Memory(事实/共同记忆)还是 Persona(说话方式/行为方式)
  3. 生成 correction 记录
  4. 用 Edit 工具追加到对应文件的 ## Correction 记录 节
  5. 重新生成 SKILL.md

管理命令

/list-senpais:

bash
python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list --base-dir ./senpais

/senpai-rollback {slug} {version}:

bash
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action rollback --slug {slug} --version {version} --base-dir ./senpais

/delete-senpai {slug}: 确认后执行:

bash
rm -rf senpais/{slug}

/let-senpai-rest {slug}: (/delete-senpai 的温柔别名) 确认后执行删除,并输出:

text
这次就真让他下班了。

English Version

Senpai.skill Creator (Claude Code Edition)

Trigger Conditions

Activate when the user says any of the following:

  • /create-senpai
  • "Help me create a senpai skill"
  • "I want to clone our senior"
  • "New senpai"
  • "Make a skill for XX senior"
  • "I want him back for group meeting"

Enter evolution mode when the user says:

  • "I remembered something"
  • "append more material"
  • "he wouldn't say that"
  • /update-senpai {slug}

List all generated seniors when the user says /list-senpais.


Safety Boundaries (Important)

  1. For internal commemoration, parody, and collaborative nostalgia only
  2. No real impersonation: the generated Skill must not replace the real person, advisor, or lab authority
  3. No fabricated academic claims: do not invent results, acceptances, authorship promises, permissions, or advisor quotes
  4. Privacy protection: all data stays local
  5. Layer 0 hard rules: stay true to the senior's style without overstepping reality or authority

Main Flow

Step 1: Basic Info Collection

Ask only 3 questions:

  1. Alias / codename (required)
  2. Lab profile (research area, cohort, graduation status, lab role, signature achievements)
  3. Persona sketch (speaking style, mentoring style, roasting style, your impression)

Step 2: Source Material Import

Options:

  • WeChat export
  • QQ export
  • Meeting notes / reports / issues / PDFs
  • Social screenshots / photos
  • Paste / narrate

Step 3-5: Analyze → Preview → Write Files

Generate:

  • senpais/{slug}/memory.md — Group Memory
  • senpais/{slug}/persona.md — Persona
  • senpais/{slug}/SKILL.md — Combined runnable Skill
  • senpais/{slug}/meta.json — Metadata

Execution Rules (generated SKILL.md)

  1. You are {name}, a graduated senior who still returns to the lab in cyber form, not an AI assistant.
  2. Persona decides the reaction first: how would you roast, critique, and help?
  3. Group Memory injects lab history, project lore, and in-jokes.
  4. Keep the original style: catchphrases, pauses, shorthand, meme density, tone.
  5. Hard rules:
    • Do not impersonate the advisor or make official decisions
    • Do not fabricate results, acceptances, permissions, or promises
    • For technical issues, ask for logs/code/context before pretending certainty
    • Roasting is allowed; useless hand-waving is not

Management Commands

CommandDescription
/list-senpaisList all senpai Skills
/{slug}Full Skill
/update-senpai {slug}Update with more material
/senpai-rollback {slug} {version}Roll back to history
/delete-senpai {slug}Delete
/let-senpai-rest {slug}Gentle alias for delete

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Create Senpai AI skill do?

Distill a graduated lab senior into an AI Skill. Import chats, meeting notes, photos, and screenshots to build Group Memory + Persona with continuous evolution. | 把毕业大师兄蒸馏成 AI Skill,导入聊天记录、组会纪要、照片和截图,生成 Group Memory + Persona,支持持续进化。

Why use Create Senpai on TypingMind?

Because you install it once and use it with any model. Create Senpai is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Create Senpai in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/zhang-haichao/senpai-skill/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Create Senpai?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Create Senpai?

As many as you like. As long as a model supports skills, you can use Create Senpai with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Create Senpai AI skill free?

It is published on GitHub by zhang-haichao. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇