# File Handling Rules for Claude's Computer Use Mode: Uploads, Outputs, and Working Directory

> Understand Claude's computer use file handling rules. Learn about uploads outputs and the working directory for safe data isolation and reliable artifact delivery.

- Repository: [Ásgeir Thor Johnson/system_prompts_leaks](https://github.com/asgeirtj/system_prompts_leaks)
- Tags: api-reference
- Published: 2026-02-16

---

**Claude's computer use mode enforces a strict three-zone filesystem separating user uploads at `/mnt/user-data/uploads`, temporary workspace at `/home/claude`, and final deliverables at `/mnt/user-data/outputs` to ensure safe data isolation and reliable artifact delivery.**

The `asgeirtj/system_prompts_leaks` repository reveals the internal system prompts that govern how Claude manages files in computer-use environments. These file handling rules define exactly where Claude can read user data, perform intermediate processing, and store final outputs that users can access.

## The Three-Zone Filesystem Architecture

Claude's computer use mode operates within a sandboxed environment with three distinct filesystem zones. According to the system prompts in [`Anthropic/old/claude-opus-4.5.md`](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/old/claude-opus-4.5.md), these zones prevent data leakage between user uploads, internal processing state, and final deliverables.

### User Uploads Zone (`/mnt/user-data/uploads`)

This directory contains files the user attaches to the chat, including images, text files, CSVs, and documents. Claude interacts with these files using the `view /mnt/user-data/uploads` tool to list available uploads. For files whose content already appears in the context window, such as plain-text markdown pasted into the chat, Claude can reference the in-chat content directly without invoking the computer tool.

### Claude's Working Directory (`/home/claude`)

This scratch space serves as Claude's temporary workspace for intermediate processing, iterative editing, and running analysis scripts. Claude creates, edits, and executes files here during active work sessions. **Critical restriction**: Claude must never write final user-visible files directly to `/home/claude` because users cannot access this internal directory.

### Final Outputs Zone (`/mnt/user-data/outputs`)

This directory stores files that users expect to download or view, including reports, code artifacts, PDFs, and processed data. After completing work in `/home/claude`, Claude copies or moves the final file to `/mnt/user-data/outputs`. Claude then provides a `computer://` link, such as `[View report](computer:///mnt/user-data/outputs/report.docx)`, allowing users to open the file directly. For small files under 100 lines, Claude may write directly to the outputs directory without intermediate steps.

## Step-by-Step File Handling Workflow

The system prompts in [`Anthropic/claude-cowork.md`](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/claude-cowork.md) outline a specific workflow for moving files between zones:

1. **Discover uploads** – Run `view /mnt/user-data/uploads` to list available user files.
2. **Copy to working area** – Execute `cp /mnt/user-data/uploads/<filename> /home/claude/` to bring files into the workspace, or read directly if content exists in the chat context.
3. **Process and edit** – Perform analysis, transformation, or iterative editing inside `/home/claude`.
4. **Publish results** – For files ≤ 100 lines, write directly to `/mnt/user-data/outputs`. For larger files, copy the final version from `/home/claude` to `/mnt/user-data/outputs`.
5. **Share with user** – Provide a clickable `computer://` link pointing to the output location.

## Practical Code Examples

### Processing Uploaded CSV Files

When a user uploads a CSV for analysis, Claude must first check the uploads directory, copy the file to the working directory, process it, and move the results to outputs:

```bash

# List uploaded files

view /mnt/user-data/uploads

# Copy CSV to working directory

cp /mnt/user-data/uploads/sales_data.csv /home/claude/

# Create and run processing script

cat <<'PY' > /home/claude/compute_totals.py
import pandas as pd
df = pd.read_csv('sales_data.csv')
print(f"Total sales: ${df['amount'].sum():,.2f}")
PY

python3 /home/claude/compute_totals.py > /home/claude/totals.txt

# Move result to outputs

cp /home/claude/totals.txt /mnt/user-data/outputs/

```

Claude then shares the result with:

```

[View totals](computer:///mnt/user-data/outputs/totals.txt)

```

### Creating Short Reports Directly in Outputs

For small files under 100 lines, Claude can bypass the working directory and write directly to outputs:

```bash
cat <<'MD' > /mnt/user-data/outputs/quick_report.md

# Quarterly Sales Summary

Total sales: $1,254,320  
Top product: SuperWidget  
Growth: +15% QoQ
MD

```

### Iterative Editing of Large Documents

For documents exceeding 100 lines, Claude must use the working directory for iterative drafts before finalizing:

```bash

# Create initial outline in working directory

cat <<'TEX' > /home/claude/report.tex
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\title{Annual Analysis}
\author{Claude}
\date{\today}
\maketitle
% Content sections to be added iteratively
\end{document}
TEX

# Subsequent iterations edit the file in place

# ... multiple edit cycles ...

# Final step: move to outputs

cp /home/claude/report.tex /mnt/user-data/outputs/

```

## Source Code References

The file handling rules are defined in the following system prompt files within the `asgeirtj/system_prompts_leaks` repository:

| File | Description | Location |
|------|-------------|----------|
| [`Anthropic/old/claude-opus-4.5.md`](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/old/claude-opus-4.5.md) | Contains the **file_handling_rules** block defining the three-zone architecture and interaction patterns. | [View source](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/old/claude-opus-4.5.md) |
| [`Anthropic/old/claude-4.5-sonnet.md`](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/old/claude-4.5-sonnet.md) | Mirrors the same file handling rules for the Sonnet-4.5 variant. | [View source](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/old/claude-4.5-sonnet.md) |
| [`Anthropic/claude-opus-4.6.md`](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/claude-opus-4.6.md) | Updated wording for the `view` tool usage and reinforced copy-to-working-directory guidance. | [View source](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/claude-opus-4.6.md) |
| [`Anthropic/claude-cowork.md`](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/claude-cowork.md) | Practical examples of moving files between `/mnt/user-data/uploads`, `/home/claude`, and `/mnt/user-data/outputs`. | [View source](https://github.com/asgeirtj/system_prompts_leaks/blob/main/Anthropic/claude-cowork.md) |

## Summary

- **Three-zone architecture**: Claude's computer use mode strictly separates user uploads (`/mnt/user-data/uploads`), temporary working space (`/home/claude`), and final outputs (`/mnt/user-data/outputs`).
- **Working directory isolation**: Never write final user-visible files to `/home/claude`—users cannot access this internal scratch space.
- **Output delivery**: Copy completed files from `/home/claude` to `/mnt/user-data/outputs` and share via `computer://` links for user access.
- **Small file exception**: Files under 100 lines may be written directly to `/mnt/user-data/outputs` without intermediate storage in the working directory.
- **Upload access**: Use `view /mnt/user-data/uploads` to discover user-uploaded files, then copy to `/home/claude` for processing.

## Frequently Asked Questions

### Can Claude write files directly to the user uploads directory?

No, Claude cannot write to `/mnt/user-data/uploads`. This directory is read-only and reserved exclusively for files the user attaches to the chat. Claude can only view and copy files from this location into the working directory for processing.

### What happens if Claude writes final outputs to the working directory instead of the outputs folder?

If Claude writes final deliverables to `/home/claude` instead of `/mnt/user-data/outputs`, users will be unable to access or download those files. The working directory is isolated from user access, making it suitable only for temporary processing and intermediate drafts.

### Is there a size limit for files in the outputs directory?

While there is no explicit size limit defined in the system prompts, files under 100 lines may be written directly to `/mnt/user-data/outputs` without first storing them in the working directory. Larger files should follow the standard workflow: create and iterate in `/home/claude`, then copy the final version to outputs.

### How does Claude handle files already present in the context window?

For files whose content already appears in the chat context, such as plain-text markdown pasted directly into the conversation, Claude can reference the in-chat content directly without invoking the computer to open the file. However, for binary files or content not fully present in context, Claude must use the `view` tool to access `/mnt/user-data/uploads`.