Skip to content

Serve local files to Claude Desktop via HTTPS for use in code artifacts.

License

Notifications You must be signed in to change notification settings

runekaagaard/claude-local-files

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude Local Files

Artifacts in Claude Desktop can only access cdn.jsdelivr.net/pyodide/* due to Content Security Policy restrictions. This app bypasses that restriction and allows Claude Desktop artifact and analysis tools to fetch local files and use them for calculations, UI's, etc.

I use it with mcp-alchemy to have Claude Desktop generate UI reports for database result sets that are way too large for an LLM to read.

How it works

  1. Adds a line in /etc/hosts that points cdn.jsdelivr.net to 127.0.0.1
  2. Uses mkcert to generate a valid local SSL certificate for cdn.jsdelivr.net
  3. Starts a caddy server that proxies all other requests than to a specfic url folder to Fastly
  4. Files in the ./files directory are served at https://cdn.jsdelivr.net/pyodide/claude-local-files/[FILENAME]
  5. Removes the line in /etc/hosts on exit

Installation

Ubuntu/Debian

# Install dependencies
sudo apt update
sudo apt install mkcert caddy

macOS

# Install dependencies
brew install mkcert caddy

Usage

  1. Clone and enter the repository:
git clone https://github.com/runekaagaard/claude-local-files.git
cd claude-local-files
  1. Start the server:
./claude-local-files.sh
  1. Add your files to the files/ directory

  2. Ask Claude Desktop to use the content of the file in a code artifact, e.g. https://cdn.jsdelivr.net/pyodide/claude-local-files/test.json

Testing

Test that the local server works:

curl -v https://cdn.jsdelivr.net/pyodide/claude-local-files/test.json

Test that CDN passthrough works:

curl -v https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js

Generating URLs

To serve a file:

  1. Place it in the files/ directory
  2. Access it at https://cdn.jsdelivr.net/pyodide/claude-local-files/[FILENAME]

Example:

  • File: files/test.json
  • URL: https://cdn.jsdelivr.net/pyodide/claude-local-files/test.json

Security Notes

  • Only runs locally - the cdn.jsdelivr.net interception is only on your machine
  • Uses proper HTTPS with valid certificates via mkcert
  • Scripts cleans up /etc/hosts modifications on exit
  • Certificates are stored in the git root directory

Development

Pull requests welcome! Areas for improvement:

  • Windows support
  • Better logging options

License

Mozilla Public License 2.0

About

Serve local files to Claude Desktop via HTTPS for use in code artifacts.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages