dsx

Guide

How to export and back up a Claude Design project to your computer

The files inside a Claude Design project live on the server. Here's how to pull them onto a local folder — and keep them in sync — with one command, without the bytes ever passing through a model's context.

If you keep a design system in Claude Design (claude.ai/design), the files are on Anthropic's server, not on your disk. The tempting way to get a local copy is to ask an agent to "read every file and write it locally" — but that pushes every byte of every file through the model's context. On one large project that came to roughly 665,000 tokens for a single export. Moving files is not a reasoning task; you shouldn't pay a reasoning bill for it.

dsx is a small command-line tool that does the export as a plain file transfer. It works like git — clone, pull, push, status, diff — and the file bytes never touch a model's context, so the same export costs one summary line instead of 665k tokens.

Before you start

  • You need Claude Code installed and logged in — dsx reuses its OAuth token, so there is no separate login.
  • macOS or Linux (amd64 or arm64). Windows isn't supported yet.
  • You need the project ID of the Claude Design project you want to export (it's in the project's URL).

Steps

  1. Install dsx

    One binary, no dependencies. With Go:

    install
    $ go install github.com/somework/dsx@latest

    Or grab a release archive for your platform from GitHub Releases, or on macOS brew install somework/tap/dsx.

  2. Grant access once

    Inside Claude Code, run the consent command so your account allows agent access to your Design projects:

    claude
    > /design consent
  3. Clone the project

    Point dsx at the project ID and a target folder. This downloads every file into ./design:

    dsx clone
    $ dsx clone 65fdff85-…-ba9358a234b0 design
    pulled 103, unchanged 0, binary 6 (660.1 KB)

    That one line — not 665k tokens — is the whole cost of the export.

  4. Keep it in sync

    Later, pull down changes made in Claude Design, or push local edits back:

    dsx
    $ # see what changed, offline, no download
    $ dsx status
    $ # fetch server changes
    $ dsx pull
    $ # send your local edits back
    $ dsx push

Backing up (and the one flag to be careful with)

For a plain backup, a clone followed by periodic pull is all you need — dsx writes every file temp-then-rename, so an interrupted run never leaves a half-written file, and conflicts are decided on the actual bytes, never on timestamps.

About --prune

Adding --prune mirrors deletions — but dsx will only delete a local file it can prove it put there and that you didn't modify. An untracked file is never yours to delete; a locally edited file is a conflict, not a deletion. Still, treat --prune like rm: know what it will remove before you run it.

FAQ

Can I download my Claude Design files without an agent reading each one?

Yes — that's the whole point. dsx transfers the files directly; the bytes never enter a model's context, so a large project exports for one summary line instead of hundreds of thousands of tokens.

Is this official? Is it safe to use with my account?

It is unofficial and not affiliated with Anthropic — the Claude Design endpoint is undocumented, and a server change can break dsx. It's built to fail loudly rather than silently: every protocol assumption is pinned by a live test. It reads your existing Claude Code OAuth token and never writes or prints it. The whole thing is a single Go binary with zero third-party dependencies, so it's auditable end to end.

Does it edit my files, or just download them?

Both directions. pull brings the server's files down; push sends your local edits back; status and diff show what changed. If both sides changed the same file, dsx reports a conflict instead of silently overwriting either copy.

What about images and other binary assets?

They come down too. dsx detects binary files by content and handles them on a separate lane; the summary line reports how many binary files were transferred.

Does it cost any tokens?

No. dsx is not a model call — it's a file-sync client. It uses your Claude Code login to authenticate to the endpoint, but moving the files spends no tokens.

Which platforms are supported?

macOS and Linux, both amd64 and arm64. Windows is not supported yet.

Want the story of how the undocumented endpoint was recovered — and the three protocol facts I guessed wrong first? Read the build log.