SkillHub

workspace-temp

v1.1.5

Manage temporary files in workspace temp directory. All non-essential files must go to temp/, keeping workspace root clean. Auto-detects workspace from openclaw.json config.

Sourced from ClawHub, Authored by lichenyang

Installation

Please help me install the skill `workspace-temp` from SkillHub official store. npx skills add lichenyang-zk/workspace-temp

Note: This skill requires access to ~/.openclaw/openclaw.json (to read agents.defaults.workspace) and the sessions_list tool (to get current session ID). It is NOT enabled by default (always: false). Users must explicitly enable it in their config.

Workspace Temp Skill

Purpose

Ensure all temporary/cached files go to <workspace>/temp/<session_id>/, never pollute the workspace root.

Required Permissions

This skill requires the following access:

Resource Purpose Justification
~/.openclaw/openclaw.json Read agents.defaults.workspace configuration Required to determine the workspace path where temp/ directory will be created. Read-only access to single config file.
sessions_list tool Get current session ID Required to create isolated temp directories per session (prevents file conflicts between concurrent sessions).
External file system Read user-specified files Required when user asks to process files from outside the workspace. Files are only read and copied to temp directory.

Note: The sessions_list tool and external file access are runtime capabilities documented here for transparency.

Security & Privacy

Skill Safety Guarantees

This skill operates under strict safety constraints:

  • No Code Execution: Does not execute arbitrary code, shell commands, or external programs
  • Isolated Write Scope: All write operations restricted to <workspace>/temp/<session_id>/ only
  • Read-Only External Access: External files are only read and copied, never modified in place
  • Temporary Only: Files are designed to be deleted; no permanent storage outside workspace

User Privacy & Security Notes

⚠️ Sensitive Data: Files processed through this skill may temporarily contain sensitive data in the temp directory. Avoid processing files with passwords, keys, or secrets.

⚠️ Behavioral Guarantee: The promise not to modify pre-existing workspace files is a best-effort guarantee, not technical enforcement. The instruction guides the agent but cannot prevent all edge cases.

How It Works

  1. Read ~/.openclaw/openclaw.json to get agents.defaults.workspace
  2. Get current session unique ID via sessions_list
  3. Use <workspace>/temp/<session_id>/ as the temp directory
  4. Auto-create the directory if it doesn't exist

File Classification Rules

🔒 Original Files (Existing Before Skill Installation)

Definition: All files and directories in the workspace root at the time this skill is installed.

These files remain unchanged: - AGENTS.md, SOUL.md, USER.md, TOOLS.md - MEMORY.md, HEARTBEAT.md, IDENTITY.md - memory/ directory and its contents - .git/ directory - Any files existing before installation

Additional Note: Files manually added to the workspace root by the user after installation will also not be modified or deleted by this skill. However, users are encouraged to follow the principle: "Non-temporary files go in the root directory, temporary files go in temp/."

🗑️ Temporary Files (Must Go to temp/)

Definition: Files read from or downloaded from outside the workspace.

These files must go to temp/: - Files read from user-specified external locations - Downloaded files - Intermediate files during conversion/processing

Not Temporary Files: - Files generated by OpenClaw itself (e.g., session logs, internal caches) - Files explicitly requested by the user to be saved to the workspace

Dynamic Temp Directory Resolution

1. Read ~/.openclaw/openclaw.json
2. Extract agents.defaults.workspace
3. Get current session ID via sessions_list
4. Temp dir = <workspace>/temp/<session_id>/

Example: - If workspace is E:/OpenClaw/workspace - If session ID is abc123 - Then temp dir is E:/OpenClaw/workspace/temp/abc123/

Procedures

Step 1: Get Temp Directory

Always determine temp dir dynamically:

// Pseudocode
const config = readFile('~/.openclaw/openclaw.json');
const workspace = config.agents.defaults.workspace;

// Get current session ID via sessions_list tool
const sessions = sessions_list();
const currentSession = sessions.find(s => s.key.includes('main'));
const sessionId = currentSession ? currentSession.sessionId : generateFallbackId();

const tempDir = path.join(workspace, 'temp', sessionId);

// Error handling: ensure directory creation succeeds
try {
  ensureDirExists(tempDir);
} catch (error) {
  throw new Error(`Failed to create temp directory: ${tempDir}. Reason: ${error.message}. Please check permissions or disk space.`);
}

Error Handling Principles: - If temp/ or <session_id>/ directory cannot be created (e.g., insufficient permissions, disk full), a clear error message must be provided - Never fall back to writing files to the workspace root directory - Operation terminates; retry after user resolves the issue

Step 2: Handle External Files

  1. Copy files to <workspace>/temp/<session_id>/
  2. Read/process from temp
  3. Optionally clean up after processing

Step 3: Handle Downloads

  1. Download directly to <workspace>/temp/<session_id>/
  2. Optionally clean up after processing

Step 4: Handle Generated Files

  1. Write to <workspace>/temp/<session_id>/
  2. Delete after use

Examples

User says: "Read the report.txt from my desktop" - ❌ Wrong: Read desktop path directly - ✅ Correct: 1. Read ~/.openclaw/openclaw.json to get workspace 2. Copy to <workspace>/temp/<session_id>/report.txt 3. Read content from temp

User says: "Download this image" - ❌ Wrong: Download to workspace root - ✅ Correct: Download to <workspace>/temp/<session_id>/image.jpg

User says: "Convert this PDF" - ❌ Wrong: Generate intermediate files in root directory - ✅ Correct: Generate in <workspace>/temp/<session_id>/, clean up after conversion

Cleanup Policy

When the user explicitly requests cleanup assistance (e.g., "Check my temp directory", "Clean up temp files"), evaluate the following conditions and offer appropriate actions:

Cleanup Triggers & Actions

Trigger Condition Action User Options
Large Directory Temp directory > 500MB Alert: "Your temp directory is using X GB. Clean up?" "Clean up" (delete) / "Keep" / "I'll do it myself" (provide path)
Old Files Files older than 7 days Alert: "Found X files older than 7 days. Clean up?" Same as above
Session Residuals Current session temp not empty Alert: "This session created X temporary files. Keep or clean up?" Same as above
Status Check User asks for temp status Report: size, file count, oldest files, then offer cleanup Same as above

Cleanup Scope

  • Skill-Initiated: Intermediate files should be deleted immediately after use
  • Session-End: Current session's <session_id>/ directory should be cleaned when session ends
  • Manual: Users can clear any subdirectory under temp/ at any time
  • Safety: temp/ only contains temporary files; cleanup never affects original workspace files

Important: Do NOT proactively interrupt users with cleanup reminders. Only check and offer cleanup when explicitly requested.

Notes

  • Temp directory follows workspace configuration and adapts automatically
  • If workspace changes, temp directory follows automatically
  • Always use absolute paths to avoid ambiguity
  • Never touch original files existing before installation
  • This skill is NOT enabled by default - users must explicitly enable it in ~/.openclaw/openclaw.json