Project Manager
pwrdrvr/openclaw-codex-app-server
Manage GitHub issues and the GitHub Project board for the current repository, while keeping the local tracker in sync.
A skill your agent uses when the user wants to import external chat exports into OpenClaw.
$ npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dashhuang/openclaw-chat-history-import chat-history-import --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "chat-history-import" agent skill from https://github.com/dashhuang/openclaw-chat-history-import/tree/main into .claude/skills/chat-history-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chat-history-import", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dashhuang/openclaw-chat-history-import chat-history-import --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "chat-history-import" agent skill from https://github.com/dashhuang/openclaw-chat-history-import/tree/main into .agents/skills/chat-history-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chat-history-import", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dashhuang/openclaw-chat-history-import chat-history-import --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "chat-history-import" agent skill from https://github.com/dashhuang/openclaw-chat-history-import/tree/main into .cursor/skills/chat-history-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chat-history-import", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dashhuang/openclaw-chat-history-import chat-history-import --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "chat-history-import" agent skill from https://github.com/dashhuang/openclaw-chat-history-import/tree/main into .gemini/skills/chat-history-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chat-history-import", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dashhuang/openclaw-chat-history-import chat-history-importInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "chat-history-import" agent skill from https://github.com/dashhuang/openclaw-chat-history-import/tree/main into .github/skills/chat-history-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chat-history-import", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dashhuang/openclaw-chat-history-import chat-history-import --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "chat-history-import" agent skill from https://github.com/dashhuang/openclaw-chat-history-import/tree/main into .opencode/skills/chat-history-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chat-history-import", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
chat-history-importA skill your agent uses when the user wants to import external chat exports into OpenClaw.
Chat History Import is an agent skill from dashhuang/openclaw-chat-history-import. Use when the user wants to import external chat exports into OpenClaw. This skill normalizes raw chat history into conversation-archive-compatible JSONL, then guides the model to distill daily memory and MEMORY.md candidates before applying merges with user confirmation.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including scripts and reference files (for example `.github/workflows/validate.yml`, `README.md` and `references/prompts.md`).
It works with OpenAI and Telegram. The repository describes itself as: OpenClaw skill for importing external chat history into archive, daily memory, and MEMORY.md workflows. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 31de67f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 6 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Chat History Import loads about 3.8k tokens when it runs, and up to ~6.6k if it reads all its reference files. Until then it costs about 73 tokens; SKILL.md has 1,885 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from dashhuang/openclaw-chat-history-import at commit 31de67f, republished under its MIT licence (© dashhuang). 1,885 words, ~3,795 tokens.
.claude/skills/chat-history-import/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.Use this skill when a user wants to import chat history from Claude, ChatGPT, Telegram Desktop exports, Slack exports, markdown logs, JSON/JSONL transcripts, or similar archives into an OpenClaw workspace.
The most common source formats for this skill are ChatGPT exports and Claude exports. Telegram Desktop HTML exports are also supported when the user wants to backfill a Telegram direct chat or group into OpenClaw's raw archive. If the user has not exported data yet, suggest the usual official export entry points first:
Settings -> Data Controls -> ExportSettings -> Privacy -> Export dataThese exports usually arrive as ZIP files and are good candidates for the built-in import flow.
logs/message-archive-raw/memory/YYYY-MM-DD.mdMEMORY.md candidate generationThis skill is not a replacement for the live archive plugin or archive search skill.
conversation-archive pluginlogs/message-archive-raw/ tree.conversation-history skillPreferred combined setup:
chat-history-import to backfill old historyconversation-archive to keep new history flowing inconversation-history to search both imported and live archive dataScripts handle deterministic work:
Validation must be reported in two layers when relevant:
import-batch validation: whether the files written by this import are validfull-archive validation: whether the entire existing archive tree is validIf full-archive validation fails because of pre-existing files outside this import batch, do not describe the new import itself as failed. Report the historical archive issue separately.
The model handles semantic work:
MEMORY.mdMEMORY.md candidates against existing MEMORY.mdDo not try to replace this semantic step with Python heuristics.
Also do not assume the bundled Python parsers can recognize every source format. For unknown input formats, the model may need to inspect the source and write a temporary format-specific parser.
agents/<agentId>/sessions/.logs/message-archive-raw/ as the canonical destination for imported raw chat history.{baseDir}/scripts/validate_archive.py and stay compatible with the conversation-archive plugin's archive contract.memory/YYYY-MM-DD.md file for that date.MEMORY.md is the default memory file here and is always review-required before apply.If the user says they already uploaded an archive, but the current chat channel only exposes a placeholder or incomplete file payload, treat that as a transport limitation first.
For large ChatGPT or similar exports, guide the user toward a smaller text-focused package before retrying upload:
For ChatGPT-style exports, the most important files are usually:
conversations.jsonconversations-*.jsongroup_chats.jsonexport_manifest.jsonIf the reduced archive still cannot be uploaded through the chat channel, ask for one of these instead:
Use a temp path or another host-local staging path for large imports rather than polluting workspace/.
Start by inspecting the source:
python3 {baseDir}/scripts/inspect_import.py /path/to/archive-or-fileUse local file structure first. Use web research only as fallback for unclear formats.
When helpful, check whether the current workspace already has conversation-archive and conversation-history available, so the user can be told what will happen after import:
Normalize the source into the archive schema described in {baseDir}/references/schema.md:
python3 {baseDir}/scripts/normalize_import.py /path/to/archive --archive-root logs/message-archive-raw --workspace workspace --agent-id main --apply
python3 {baseDir}/scripts/validate_archive.py logs/message-archive-rawAfter validation, explicitly separate these outcomes:
If validation errors point to old archive files unrelated to the current import, report that clearly as a historical archive issue rather than an import-batch failure.
When the bundled parser does not recognize the input format, use this fallback sequence:
{baseDir}/references/schema.md.{baseDir}/scripts/validate_archive.py on the result before claiming success.Preferred order:
Guardrails for temporary parsers:
MEMORY.mdIf a bundled parser is missing for a format that seems broadly reusable, mention that it may be worth promoting the temporary parser into a maintained parser later.
This step is model-driven.
Before writing any daily memory, switch into Plan Mode (or an equivalent explicit checklist workflow) and review the import one date at a time.
When the runtime supports subAgents or delegated parallel review, prefer using them to review imported dates one by one or in very small date batches. The goal is coverage and auditability, not speed alone.
Use the helper script to build the review checklist whenever possible:
python3 {baseDir}/scripts/build_review_checklist.py logs/message-archive-raw \
--source-archive <archive-name> \
--source-provider <provider> \
--md-out tmp/chat-import-review-checklist.md \
--json-out tmp/chat-import-review-checklist.jsonThis helper gives you a date-by-date checklist with entry counts so the Plan Mode review can be explicit and auditable.
Required review process:
YYYY-MM-DD.jsonl date file firstMEMORY.md standards when deciding daily memoryChecklist discipline is part of the workflow, not an optional nicety. If a date was reviewed, the checklist should show that review explicitly.
Before writing any memory, first read the local memory rules from the current OpenClaw environment.
Read in this order when available:
openclaw.jsonagents.defaults.compaction.memoryFlush.promptagents.defaults.compaction.memoryFlush.systemPromptAGENTS.mdMEMORY.mdmemory/YYYY-MM-DD.mdUse these local rules as the primary source of truth. If local rules conflict with anything in this skill, follow the local rules. The generic guidance in this skill is not an equal second source of truth; it is fallback-only scaffolding for cases where the local environment is missing rules or is still too vague to decide.
For ready-to-use prompt templates, read {baseDir}/references/prompts.md.
For each relevant date:
Daily memory is a day log, not a default-memory summary. Do not over-filter it using long-term-memory standards.
Good output shape:
# 2024-04-14
<!-- imported-memory provider=claude archive=data-...zip -->
- 开始用 Claude 辅助起草中文股东信,采用“逐段整理,最后整合全文”的工作方式。Bad output shape:
MEMORY.md CandidatesChoose one of these modes explicitly:
source-memory only
Use a dedicated memory-like file from the import source when available, such as Claude memories.json.
archive-distill only
Distill MEMORY.md candidates directly from the imported archive.
hybrid
Use source memory as the base, then refine or supplement it from archive evidence.
Default:
source-memory onlyarchive-distill only or hybrid when the user explicitly wants the heavier pathBefore choosing wording and granularity, read local MEMORY.md and recent daily memory files so the imported candidates match the current workspace style.
Preferred user-facing wording:
MEMORY.md the default memory or 默认记忆Warn the user that archive-wide MEMORY.md distillation is slower and more dependent on model quality.
After the model writes daily memory bullets and MEMORY.md bullets, save them in a JSON payload with this shape:
{
"daily_memory": [
{
"date": "2024-04-14",
"source_provider": "claude",
"source_archive": "claude-export.zip",
"bullets": [
"开始用外部模型辅助起草正式中文文稿,采用“逐段整理,最后整合全文”的工作方式。"
]
}
],
"memory_md": [
{
"section": "关于用户",
"source_provider": "claude",
"source_archive": "claude-export.zip",
"bullets": [
"用户可在多语言环境中自然切换,个人交流常偏好中文。",
"长期关注科技、游戏与时事。"
]
}
]
}Then stage or apply with:
python3 {baseDir}/scripts/memory_merge.py /path/to/payload.json --review-root tmp/chat-history-import-reviewUse memory_md as the preferred payload key.
long_term_memory is still accepted for compatibility, but new work should use memory_md.
Daily memory can be applied directly:
python3 {baseDir}/scripts/memory_merge.py /path/to/payload.json --memory-root memory --apply-dailyMEMORY.md candidates must be confirmed first:
python3 {baseDir}/scripts/memory_merge.py /path/to/payload.json --memory-file MEMORY.md --apply-long-termAfter a successful import, ask the user whether they want to delete the source archive, extracted source directory, and temp files to save disk space. Do not delete them without explicit confirmation.
When reporting progress or completion, include:
MEMORY.md candidates were only staged or also appliedconversation-history.conversation-archive or equivalent live archive plumbing is enabled.MEMORY.md facts.MEMORY.md filtering standards to daily memory distillation.Read {baseDir}/references/schema.md before changing archive output.
© dashhuang, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 13 other files (scripts, references) in the repository root of dashhuang/openclaw-chat-history-import.
Open the folder on GitHubat commit 31de67f
Chat History Import next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Chat History Import this skilldashhuang/openclaw-chat-history-import | 144 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Project Managerpwrdrvr/openclaw-codex-app-server | 265 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Releasepwrdrvr/openclaw-codex-app-server | 265 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Test Ocas Openclawpwrdrvr/openclaw-codex-app-server | 265 | — | ~4k | Automated safety check: Pass | MIT | |
| Claude To Codex Migrationgrandamenium/cortextos | 101 | — | ~12k | Automated safety check: Warn | MIT | |
| OrlixBankrBot/skills | 1.2k | — | ~2.7k | Automated safety check: Pass | None |
pwrdrvr/openclaw-codex-app-server
Manage GitHub issues and the GitHub Project board for the current repository, while keeping the local tracker in sync.
pwrdrvr/openclaw-codex-app-server
Plan and publish a GitHub Release in a tag-driven repository.
pwrdrvr/openclaw-codex-app-server
Regression test the OpenClaw Codex App Server plugin against a live local OpenClaw instance in Telegram or Discord.
grandamenium/cortextos
Migrate ANY cortextOS agent from the claude-code runtime to the live codex-app-server runtime.
BankrBot/skills
Personal AI Operating System on Base. An agent skill from BankrBot/skills.
LeoYeAI/openclaw-master-skills
Free habit tracking, todo, and routines — create and track up to 25 habits, 100 tasks, and 15 routines; schedule reminders and daily briefings across ChatGPT, Telegram, Slack, and OpenClaw.
dashhuang/openclaw-chat-history-import
A skill your agent uses when the user asks what was said earlier in a chat, wants an old decision, exact wording, prior links, or suspects the agent forgot conversation context across Telegram…
A skill your agent uses when the user wants to import external chat exports into OpenClaw. Chat History Import is an agent skill from dashhuang/openclaw-chat-history-import. Use when the user wants to import external chat exports into OpenClaw.
Chat History Import fits situations like: the user wants to import external chat exports into OpenClaw.
Run `npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a claude-code`. Or copy the skill folder (the dashhuang/openclaw-chat-history-import repository) into .claude/skills/chat-history-import in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a codex`. Or copy the skill folder (the dashhuang/openclaw-chat-history-import repository) into .agents/skills/chat-history-import in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dashhuang/openclaw-chat-history-import --skill chat-history-import -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/chat-history-import, .gemini/skills/chat-history-import, .github/skills/chat-history-import and .opencode/skills/chat-history-import in your project.
Going by SKILL.md and its folder, Chat History Import needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Chat History Import is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Chat History Import: Project Manager (pwrdrvr/openclaw-codex-app-server, 265 stars), Release (pwrdrvr/openclaw-codex-app-server, 265 stars), Test Ocas Openclaw (pwrdrvr/openclaw-codex-app-server, 265 stars) and Claude To Codex Migration (grandamenium/cortextos, 101 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dashhuang (a GitHub user) maintains it in dashhuang/openclaw-chat-history-import, which has 144 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on April 10, 2026.
Source: dashhuang/openclaw-chat-history-import on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.