Skip to content

Commit e2f14db

Browse files
matej21claude
andcommitted
fix: use $TMPDIR for canvas JSX files instead of .claude/
Writing to .claude/ triggers extra permission prompts in Claude Code since that directory has special security checks. $TMPDIR is already in the sandbox allowlist and doesn't pollute the project directory. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent bde08ce commit e2f14db

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

bin/lib/instructions/overview.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ Use it whenever structured visual communication beats inline chat: plans, review
1010

1111
### 1. Write JSX
1212

13-
Use the **Write** tool to create `.jsx` files in `.claude/agent-canvas/<session-id>/`:
13+
Use the **Write** tool to create `.jsx` files in `$TMPDIR/agent-canvas/<session-id>/`:
1414

1515
```jsx
16-
// .claude/agent-canvas/<session-id>/plan.jsx
16+
// $TMPDIR/agent-canvas/<session-id>/plan.jsx
1717

1818
<Section title="Authentication Redesign">
1919
A proposal to replace session-based auth with JWT tokens.
@@ -41,7 +41,7 @@ Components are auto-available — no imports needed. The file can be a JSX fragm
4141
Push the directory to open all canvases in the browser:
4242

4343
```bash
44-
bunx agent-canvas push .claude/agent-canvas/<session-id>/ --session <session-id> --label "Implementation Plan"
44+
bunx agent-canvas push $TMPDIR/agent-canvas/<session-id>/ --session <session-id> --label "Implementation Plan"
4545
```
4646

4747
All `*.jsx` files in the directory are pushed as a snapshot. Each file appears as a separate tab. **Always show the `browserUrl` from the output to the user.**
@@ -82,7 +82,7 @@ Returns immediately — prints feedback if available, otherwise no output.
8282
Use different files for different phases or concerns:
8383

8484
```
85-
.claude/agent-canvas/<session-id>/
85+
$TMPDIR/agent-canvas/<session-id>/
8686
discovery.jsx # Discovery interview
8787
requirements.jsx # Requirements spec
8888
plan.jsx # Implementation plan
@@ -92,7 +92,7 @@ Write new files as phases progress, then push the directory. Previous files rema
9292

9393
## File Location
9494

95-
All canvas files go in `.claude/agent-canvas/<session-id>/` within the project root. Add `.claude/agent-canvas/` to `.gitignore`.
95+
All canvas files go in `$TMPDIR/agent-canvas/<session-id>/`. This is a system temp directory — no `.gitignore` needed.
9696

9797
## Components
9898

skills/canvas/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ disable-model-invocation: true
1616
Your canvas session ID is: `${CLAUDE_SESSION_ID}`
1717

1818
Use this value for:
19-
- File paths: `.claude/agent-canvas/${CLAUDE_SESSION_ID}/`
19+
- File paths: `$TMPDIR/agent-canvas/${CLAUDE_SESSION_ID}/`
2020
- CLI flags: `--session ${CLAUDE_SESSION_ID}`
2121

2222
## Instructions

0 commit comments

Comments
 (0)