deepfreeze
TEMPORARY skill loader — fetches remote SKILL.md files without permanent installation. Temp mode auto-cleans on restart. Frozen mode persists across sessions. NEVER uses npx skills add or installs permanently. Use when user wants to load a skill temporarily from a GitHub repo URL, raw URL, or any HTTP link to a SKILL.md file, or says "load temp skill", "fetch skill from", "use this skill temporarily", "temp skill", "freeze", or "deepfreeze".
来源信息
- 仓库
- mahmoud20138/Deepfreeze
- 最近来源活动
- 2026年5月29日 18:45
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 2
- 分支
- 0
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- deepfreeze
- description
- TEMPORARY skill loader — fetches remote SKILL.md files without permanent installation. Temp mode auto-cleans on restart. Frozen mode persists across sessions. NEVER uses npx skills add or installs permanently. Use when user wants to load a skill temporarily from a GitHub repo URL, raw URL, or any HTTP link to a SKILL.md file, or says "load temp skill", "fetch skill from", "use this skill temporarily", "temp skill", "freeze", or "deepfreeze".
- argument-hint
- URL of the skill to load (GitHub repo or raw SKILL.md URL)
# Deepfreeze
Load skills from the internet without installing them permanently. Skills are cached in a session-scoped temp directory and cleaned up on demand.
## CRITICAL: Temporary Only — Never Install
**This skill exists to PREVENT permanent installation.** You MUST:
- NEVER run `npx skills add`, `npx skills install`, or any install command
- NEVER copy files into `~/.config/kilo/skills/` or `~/.kilocode/skills/` (outside `.temp/`)
- NEVER modify `package.json`, `.skill-lock.json`, or any config to register a skill
- NEVER suggest the user permanently install a skill you fetched temporarily
- If the temp loading fails, report the error — do NOT fall back to permanent installation
**ALL skills — including those from the Default Skill Library below — are temporary.** They go into `.temp/`, they load into context for the current session, and they get cleaned up. Nothing persists permanently.
## Session Limit: Max 50 Skills
**A maximum of 50 temp skills can be loaded per session.** Before fetching a new skill:
1. Count existing skills in `.temp/` directory
2. If count >= 50, refuse and tell the user: "Session limit reached (50 temp skills). Say 'clear temp skills' to free up slots, then try again."
3. If count < 50, proceed with fetch
## Auto-Cleanup on Session Restart
Skills are **automatically removed** when a new agent session starts. The CLI tracks sessions via a `.session` marker file in the temp directory.
### How It Works
1. On every `load`, `list`, or `clear` command, the CLI checks the session marker
2. If the session ID has changed (new agent session), all old temp skills are deleted first
3. Session ID is derived from `OPENCLAUDE_SESSION_ID`, `CLAUDE_SESSION_ID`, or `KILO_SESSION_ID` environment variables
4. If no env var is set, uses an auto-generated ID based on parent PID and time window (4-hour buckets)
### Session Commands
```bash
deepfreeze session # Show current session info, skill count, and session source
```
### For Agent Developers
To ensure clean session boundaries, set a session environment variable before invoking deepfreeze:
```bash
# Set a unique session ID for this agent conversation
export OPENCLAUDE_SESSION_ID="session-$(date +%s)-$$"
deepfreeze load https://github.com/user/repo
```
Or if your agent framework provides a session ID, pass it through:
```bash
OPENCLAUDE_SESSION_ID="$AGENT_SESSION_ID" deepfreeze load <url>
```
### Manual Cleanup
```bash
deepfreeze clear # Remove all temp skills (frozen skills untouched)
deepfreeze clear --all # Remove ALL skills (temp + frozen)
```
## Deep Freeze: Pin Skills Across Sessions
**Frozen skills persist across sessions** and are protected from auto-cleanup. Use this for skills you always want available.
### Commands
```bash
deepfreeze freeze <name> # Pin a temp skill → moves to .frozen/
deepfreeze unfreeze <name> # Unpin → returns to .temp/ (auto-cleanup again)
deepfreeze frozen # List all frozen (pinned) skills
```
### When to Freeze
- **Freeze** a skill when you want it available in every session without re-fetching
- **Unfreeze** when you no longer need it pinned, or want to update it
- Frozen skills are **not** counted toward the 50 temp skill limit
### Example Workflow
```bash
deepfreeze load https://github.com/user/repo # Load as temp
deepfreeze freeze pdf # Pin it
deepfreeze frozen # Confirm it's frozen
# ... session ends, new session starts ...
deepfreeze list # Temp is empty (auto-cleared)
deepfreeze frozen # 'pdf' still here!
deepfreeze unfreeze pdf # Return to temp when done
```
### For Agent Developers
When the user says "freeze this skill" or "pin this skill", run:
```bash
deepfreeze freeze <skill-name>
```
When they say "unfreeze" or "unpin":
```bash
deepfreeze unfreeze <skill-name>
```
## Quick Start
```text
User: load temp skill from https://github.com/vercel-labs/agent-skills
Agent: Fetches, caches, and loads the skill for this session.
```
**Supported URL formats:**
- GitHub repo: `https://github.com/user/repo` → fetches `SKILL.md` from repo root
- GitHub subfolder: `https://github.com/user/repo/tree/main/path` → fetches `SKILL.md` from that path
- Raw URL: `https://example.com/SKILL.md` → fetches directly
- Raw GitHub: `https://raw.githubusercontent.com/...` → fetches directly
## URL Resolution
When the user provides a URL, resolve it to a raw SKILL.md URL using these rules:
1. **GitHub blob URL** (`github.com/user/repo` or `github.com/user/repo/tree/branch/path`):
- Extract `user`, `repo`, `branch` (default: `main`), and `path` (default: root)
- Convert to: `https://raw.githubusercontent.com/{user}/{repo}/{branch}/{path}/SKILL.md`
- If the path already ends with `.md`, use it as-is (don't append `/SKILL.md`)
2. **Raw GitHub URL** (`raw.githubusercontent.com/...`):
- Use as-is
3. **Any other HTTP(S) URL**:
- Use as-is (must point to SKILL.md content)
### Resolution Examples
| Input | Resolved URL |
|---|---|
| `https://github.com/vercel-labs/agent-skills` | `https://raw.githubusercontent.com/vercel-labs/agent-skills/main/SKILL.md` |
| `https://github.com/user/repo/tree/dev/skills/my-skill` | `https://raw.githubusercontent.com/user/repo/dev/skills/my-skill/SKILL.md` |
| `https://raw.githubusercontent.com/user/repo/main/SKILL.md` | `https://raw.githubusercontent.com/user/repo/main/SKILL.md` |
| `https://example.com/my-skill.md` | `https://example.com/my-skill.md` |
## Fetching & Caching
### Step 0: Check Session Limit
Before fetching, count existing temp skills:
```bash
# On Windows (PowerShell)
$count = (Get-ChildItem "$HOME\.config\kilo\skills\.temp" -Directory -ErrorAction SilentlyContinue).Count
if ($count -ge 50) { Write-Host "LIMIT REACHED: $count/50 temp skills loaded. Run 'clear temp skills' to free slots." }
# On macOS/Linux
count=$(ls -d ~/.config/kilo/skills/.temp/*/ 2>/dev/null | wc -l)
if [ "$count" -ge 50 ]; then echo "LIMIT REACHED: $count/50 temp skills loaded. Run 'clear temp skills' to free slots."; fi
```
If limit reached, STOP and inform the user. Do NOT fetch.
### Step 1: Check Cache First
Before fetching, check if the `.temp` directory exists and create it if needed:
```bash
# On Windows (PowerShell)
New-Item -ItemType Directory -Path "$HOME\.config\kilo\skills\.temp" -Force
# On macOS/Linux
mkdir -p ~/.config/kilo/skills/.temp
```
Use the appropriate command for the current platform. The `bash` tool abstracts this — just run the command.
### Step 2: Fetch the SKILL.md Content
Use the `webfetch` tool with the resolved URL:
```
webfetch(url=resolved_url, format="text")
```
### Step 3: Validate the Content
The fetched content MUST contain valid SKILL.md frontmatter. Check for:
- Starts with `---`
- Contains `name:` field
- Contains `description:` field
- Ends the frontmatter block with `---`
If validation fails, report the error to the user and stop.
### Step 4: Extract Skill Name
Parse the `name:` field from the frontmatter. This becomes the cache directory name.
### Step 5: Save to Cache
```bash
# On Windows (PowerShell)
$skillDir = "$HOME\.config\kilo\skills\.temp\{skill-name}"
New-Item -ItemType Directory -Path $skillDir -Force
Set-Content -Path "$skillDir\SKILL.md" -Value $fetchedContent
# On macOS/Linux
mkdir -p ~/.config/kilo/skills/.temp/{skill-name}
echo "$fetchedContent" > ~/.config/kilo/skills/.temp/{skill-name}/SKILL.md
```
Replace `{skill-name}` with the actual name extracted from frontmatter. Use the `Write` tool if available, otherwise use platform-appropriate shell command.
## Loading into Context
After saving the skill to cache, load it into the conversation context.
### Method 1: Skill Tool (Preferred)
Try loading via the `Skill` tool using the full path:
```
Skill(name="$HOME\.config\kilo\skills\.temp\{skill-name}\SKILL.md")
```
If this works, the skill is now available in context.
### Method 2: Direct Read (Fallback)
If the `Skill` tool cannot resolve the temp path, read the file directly:
```
Read(filePath="$HOME\.config\kilo\skills\.temp\{skill-name}\SKILL.md")
```
Then inject the content as context in your response. The skill instructions will be available for the current conversation.
### Confirmation
After loading, confirm to the user:
"Loaded temp skill '{skill-name}' from {url}. It's now available for this session."
## Cleanup
When the user says "clear temp skills", "cleanup temp skills", or "remove temp skills":
### Step 1: List Cached Skills
```bash
# On Windows (PowerShell)
Get-ChildItem "$HOME\.config\kilo\skills\.temp" -Directory -ErrorAction SilentlyContinue | Select-Object Name
# On macOS/Linux
ls -la ~/.config/kilo/skills/.temp/ 2>/dev/null
```
If the `.temp` directory doesn't exist or is empty, inform the user: "No temp skills to clean up."
### Step 2: Delete the Temp Directory
```bash
# On Windows (PowerShell)
Remove-Item "$HOME\.config\kilo\skills\.temp" -Recurse -Force -ErrorAction SilentlyContinue
# On macOS/Linux
rm -rf ~/.config/kilo/skills/.temp
```
### Step 3: Confirm Cleanup
"Cleared all temp skills from cache."
## Error Handling
| Error | Response |
|---|---|
| Invalid URL format | "The URL doesn't appear to be valid. Please provide a GitHub repo URL or a direct link to a SKILL.md file." |
| Fetch fails (404) | "Could not find a skill at that URL. Please check the URL and try again." |
| Fetch fails (network) | "Network error while fetching the skill. Please check your connection and try again." |
| No frontmatter in response | "The content at that URL doesn't appear to be a valid SKILL.md file (missing frontmatter)." |
| Missing `name:` field | Use the last path segment of the URL as the skill name. Inform the user: "No skill name found in frontmatter, using '{segment}' as the name." |
| Skill name conflicts with installed skill | Warn the user: "A skill named '{name}' is already installed. The temp version will be loaded instead for this session." |
## Default Skill Library
100 coding & development skills from the open agent skills ecosystem. **All loaded TEMPORARILY — never installed permanently.** Max 50 per session.
Source: [skills.sh](https://skills.sh/) — 2026-05-27.
### React & Frontend
| # | Skill | Source | Installs | URL |
|---|---|---|---|---|
| 1 | vercel-react-best-practices | vercel-labs/agent-skills | 389K | `https://github.com/vercel-labs/agent-skills/tree/main/vercel-react-best-practices` |
| 2 | vercel-composition-patterns | vercel-labs/agent-skills | 172K | `https://github.com/vercel-labs/agent-skills/tree/main/vercel-composition-patterns` |
| 3 | shadcn | shadcn/ui | 147K | `https://github.com/shadcn/ui` |
| 4 | frontend-design | anthropics/skills | 421K | `https://github.com/anthropics/skills/tree/main/frontend-design` |
| 5 | web-design-guidelines | vercel-labs/agent-skills | 317K | `https://github.com/vercel-labs/agent-skills/tree/main/web-design-guidelines` |
| 6 | remotion-best-practices | remotion-dev/skills | 299K | `https://github.com/remotion-dev/skills` |
| 7 | vercel-react-native-skills | vercel-labs/agent-skills | 115K | `https://github.com/vercel-labs/agent-skills/tree/main/vercel-react-native-skills` |
| 8 | ui-ux-pro-max | nextlevelbuilder/ui-ux-pro-max-skill | 158K | `https://github.com/nextlevelbuilder/ui-ux-pro-max-skill` |
| 9 | design-taste-frontend | leonxlnx/taste-skill | 62K | `https://github.com/leonxlnx/taste-skill` |
| 10 | canvas-design | anthropics/skills | 55K | `https://github.com/anthropics/skills/tree/main/canvas-design` |
| 11 | web-artifacts-builder | anthropics/skills | 45K | `https://github.com/anthropics/skills/tree/main/web-artifacts-builder` |
| 12 | emil-design-eng | emilkowalski/skill | 54K | `https://github.com/emilkowalski/skill` |
### Next.js & Deployment
| # | Skill | Source | Installs | URL |
|---|---|---|---|---|
| 13 | next-best-practices | vercel-labs/next-skills | 87K | `https://github.com/vercel-labs/next-skills` |
| 14 | next-cache-components | vercel-labs/next-skills | — | `https://github.com/vercel-labs/next-skills` |
| 15 | deploy-to-vercel | vercel-labs/agent-skills | 52K | `https://github.com/vercel-labs/agent-skills/tree/main/deploy-to-vercel` |
| 16 | vercel-optimize | vercel-labs/agent-skills | 172K | `https://github.com/vercel-labs/agent-skills/tree/main/vercel-optimize` |
在 GitHub 查看这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看