Making a Claude project publicly available usually means two things at once: (1) taking the content created during a Claude Web / Claude Projects session (chat transcripts, artifacts, docs, UI “Projects”) and exporting or sharing it, and (2) taking code generated or scaffolded by Claude Code and packaging it so other people (or production systems) can consume and run it. This article walks you through both workflows in practical, step-by-step detail, with safety, provenance, and best-practice recommendations woven in.
What follows is an operational, end-to-end walk-through: how to export and publish Projects created in Claude Web, and how to package, review, and publish code generated with Claude Code.
Key short takeaway: publish artifacts and projects from Claude Web using the built-in Publish / Share flows (you can also embed artifacts or copy a public link), and export/save Claude Code conversations (using the
/exportcommand and the files under~/.claude/projects/) then package them into a normal code repo or release (GitHub, npm/PyPI/Docker, or a hosted web app).
What are matters for publishing Claude projects
In the last two years Anthropic has been maturing the Claude product line with features that matter for publishing and sharing:
- Claude Projects (the Projects UI on Claude.ai) lets Pro and Team users organize chats into Projects and make selected chats/artifacts viewable by teammates — a key building block for sharing a project internally and preparing it for public exposure.
- Anthropic released Claude Code, a terminal/IDE-centric, agentic coding tool and companion CLI/IDE integrations (VS Code, JetBrains) that produces code artifacts and can be integrated into developer toolchains. There’s also public documentation and best-practice guidance for using Claude Code in real projects.
- Claude’s support materials include explicit user data export flows from the web UI (Settings → Privacy → Export) that are relevant to backing up or migrating project data before publishing. For Team plan Primary Owners there are export controls as well.
What follows is an operational, end-to-end walk-through: how to export and publish Projects created in Claude Web, and how to package, review, and publish code generated with Claude Code.
How do I publish/export a project created in Claude Web
What Claude Web features are relevant to exports and publishing?
Claude Web supports Projects (a workspace to organize chats, uploaded files and artifacts) and allows exporting user or organization data via Settings → Privacy → Export data; Claude can also create files (PowerPoint, Excel, Word, PDF) and those outputs are directly downloadable or saveable to Google Drive. However, Projects’ internal knowledge base and some interaction logs may not have a single “export project” button today — you should rely on the built-in export + artifact downloads and supplement with programmatic extraction where necessary.
Step 1 — Audit project contents (safety & IP)
- Open the Project in the Claude web UI (claude.ai/projects) and list every uploaded file, instruction, prompt, and generated artifact.
- Remove or redact any secrets, credentials, or private data from artifacts (search for
.envcontents, API keys, personal data). Treat model outputs the same — remove copyrighted sections if you cannot prove license. - Classify third-party assets (images, datasets) and confirm licenses permit redistribution.
Step 2 — Export official artifacts using the web UI
- Download generated files directly from the chat (Claude can create
.pptx,.xlsx,.docx,.pdf— save these via the download button or save to Google Drive). - For account or org-level exports (chat logs, account metadata): Settings → Privacy → Export data (individuals and org Primary Owners have export flows). This delivers an archived export link by email.
Notes & gotchas:
- Deleted messages/projects (or things removed by retention settings) won’t be included in exports after deletion.
- Exports can take time to prepare; the download link is emailed and will expire (request again if it expires).
Step 3 —make public the Artifact (single output)
- Open the artifact in Claude Web.
- Click the Publish button (this action toggles the artifact to “public” and makes a public URL available).
- After publishing, click Get embed code if you want to embed the artifact into a site or CMS — copy the generated HTML snippet. (Embedding is supported on free/Pro/Max plans.)
Notes & tips
- You can also download certain artifact types (SVG, PNG, Mermaid text, or other export formats) from the UI — use the download to include the artifact in your repo or blog post.
- Add an explanatory caption and alt text to the embedded content for accessibility.
Step 4 — Package the exported content for publication
- Create a Git repository locally:
git init, add a clear README describing provenance, limitations, and license. - Add a
LICENSEfile (choose permissive or restricted license depending on your goals). Consider a “research use only” or “no military/commercial” clause if you need restrictions (note: enforcement is complex — consult legal). - Add
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdif you intend to accept community contributions. - Add a
MODEL_CARD.md/SYSTEM_CARD.mdsummarizing what Claude produced, what safety testing you did, and the dataset/provenance notes you are willing to publish. This transparency is essential.
Step 5 — Sanity checks before public push
- Run secret scanners (see the “How will we remove secrets?” section).
- Validate that no personal data or disallowed content remains.
- Ensure exported documents are virus/metadata cleaned (remove tracked changes, hidden metadata).
Step 6 — Publish
- Push code/artifacts to a chosen public host (GitHub/GitLab). Use a release tag and a descriptive release note. If you want a static site or demo, consider GitHub Pages, Netlify, or a Docker container published to a registry.
- If you’re publishing interactive artifacts created by Claude (e.g., a demo site), make sure runtime requests do not leak backend API keys — use server-side proxies and rate limits.
Practical example (static HTML demo)
- Copy the HTML artifact from the Project into
index.html. AddREADME.mdwith reproduction instructions. - Commit and push:
git init
git add .
git commit -m "Initial publish: Claude Project export v1.0"
gh repo create my-claude-demo --public --source=. --push
- Enable GitHub Pages in the repo settings (branch: main / folder: /) or set up GitHub Actions to deploy to Netlify/S3.
How do I export and package the transcripts or code generated by Claude Code?
Claude Code is agentic and primarily CLI-driven; it saves sessions locally and provides slash commands (including /export) to save and export conversations. The recommended workflow is: export the conversation + supporting files, convert/clean the output into a human-friendly format, add a code repo with metadata, then publish. Below are practical, reproducible steps using the built-in command and common packaging tools.
Step 1 — Make sure Claude Code is set up correctly
- Install Claude Code and configure (follow the setup guide: recommend to connect via the Cometapi Console then set up billing if needed, Cometapi offers more affordable API pricing.).
- Verify you can run
claudein your terminal and that you have a workspace.
Step 2 — Export the conversation(s)
- In the Claude Code REPL (interactive CLI), run:
/export myproject-conversation.jsonlor simply/exportwhich will copy the conversation to clipboard or write a file (behavior depends on the version and flags). The/exportcommand exports the current session to a file or the clipboard. - If you prefer to gather all project sessions, inspect the
~/.claude/projects/directory (Claude Code persists conversations there as JSONL or JSON files). Example:ls -la ~/.claude/projects/ - If the export is JSONL, convert to Markdown for readability:
-
Simple Python snippet:
import json out = [] with open('myproject-conversation.jsonl') as f: for line in f: out.append(json.loads(line)) # transform out -> markdown file -
Or use community tools such as
claude-conversation-extractororclaude-code-exporter(community projects exist that parse and convert sessions to Markdown/MDX).
Step 3 — Create a reproducible repo
- Create a local repo:
mkdir my-claude-project cd my-claude-project git init - Add:
README.md— project description, provenance notes, usage instructions.CLAUDE.md— how Claude was used (prompts, temperature/parameters if relevant, what was human-edited).LICENSE— chosen license.artifacts/— include downloaded artifacts (images, SVGs) and the exported conversation files (.jsonlor.md).src/— generated code (if any) and supporting scripts.
- Commit:
git add . git commit -m "Initial Claude project export and artifact bundle"
Step 4 — Package the code for distribution
Which packaging path you choose depends on the code language and target audience.
If it’s a JavaScript/Node package(requires npm account):
- Create a directory:
mkdir my-claude-project && cd my-claude-project - Initialize git:
git init - Initialize package metadata:
npm init→ fill metadata. - Add
index.js, tests, and anexamples/folder. echo "MIT" > LICENSE(or use your chosen license).- Create an npm account and authenticate:
npm login - Publish to npm:
npm publish --access public(Use--access publicfor scoped packages you want public.)
cpp
npm publish --access public
If it’s a Python package:
- Prepare repository: Add
pyproject.tomlorsetup.py. - Sanitize & test: Run
pytest, static typing (mypy), and dependency checks. Remove secrets and credentials. - Build & publish: Build wheel and sdist
nginx
#creates dist/
python -m build
# follow Twine prompts (use TestPyPI first if you want a dry run)
twine upload dist/*
If it’s a web app or demo:
- Create a small web front-end (e.g., Vite/Next/Vercel).
- Deploy to Vercel/Netlify:
- Connect GitHub repo.
- Add environment variables with non-sensitive keys (none for public demo).
- Deploy.
If it’s a containerized service:
- Add
Dockerfile. - Build & push:
perl
# test locally
docker build -t dockerhubuser/my-claude-demo:1.0 .
# Push to registry (Docker Hub / GitHub Container Registry):
docker push dockerhubuser/my-claude-demo:1.0
Step 5 — Create a release and documentation
- On GitHub: open the repository → create a Release (tag v1.0.0) and upload compiled artifacts (ZIP, tarball).
- Add a
CONTRIBUTING.mdandSECURITY.mddescribing how to report issues or sensitive data leaks. - Add a short demo page (GitHub Pages) with the embedded artifact URL from Claude Web or downloadable assets.
How do I integrate the Claude Code export into CI/CD
Example: GitHub Actions to export, convert and release
1.Goal: when a branch is pushed, export the latest Claude conversation files (if you have them in a machine/CI artifact or via an MCP server) and create a release.
- High-level steps:
Use a workflow (.github/workflows/publish.yml) that:
- Checks out the repo.
- Runs a small script to convert JSONL → Markdown.
- Uses
actions/create-releaseto publish the release. - Uploads the artifact.
- Security note: Don’t store private API keys in the repo; use GitHub Secrets and rotate tokens.
(Community tools such as claude-code-exporter and MCP-compatible servers make integrating conversation export into server flows simpler; look for MCP/CLI integrations that stream conversations to a centralized archive).
What about collaborative sharing and reproducibility
Make a reproducible environment
- Add
environment.yml/requirements.txt/package.jsonlisting exact versions. - Add a
Makefilewith targets:make export make convert make build make release - Document the exact Claude Code version used (e.g.,
claude-code v1.0.44) and the export command. This helps readers reproduce exports (versions change behavior of/export).
Share the conversation + code
- Publish the Claude artifact (public ULR/embed) and link to the GitHub release that contains the exported transcripts and packaged code.
- Add a one-click demo (Vercel / GitHub Pages) and include a
Try itlink.
Specific technical pitfalls and avoid
Pitfall: leaking secrets or PII
Remedy: use automated scanning (truffleHog, git-secrets) before publishing. Add a pre-commit hook to block accidental pushes of .env or API keys.
Pitfall: relying on raw JSONL conversation files as the user-facing artifact
Remedy: convert to Markdown, add provenance notes, and surface only sanitized, contextualized outputs as primary artifacts.
Pitfall: version mismatch and future incompatibility
Remedy: pin versions (both Claude Code and any helper libraries), include claude-version.txt or claude-code-version in the repo.
Pitfall: lack of licensing
Remedy: add LICENSE early. If you want permissive reuse, pick MIT/Apache 2.0; for commercial control, choose a more restrictive license.
How do I signal to users what Claude did vs what humans did?
Best practice: explicit attribution and a provenance file
CLAUDE.md — short format:
## Provenance
- Created with Claude Web (artifact: <public-URL>)
- Prompts used: (excerpted)
- Human edits: normalized content on 2025-12-03
- Exported from Claude Code: /export -> myproject-conversation.jsonl
Add a USAGE.md and LIMITATIONS.md describing model hallucination risk, recommended guardrails, and contact for corrections.
Conclusion — publish thoughtfully, iterate quickly
Making a Claude project public is an opportunity to share useful artifacts, accelerate research, and grow an ecosystem — but it must be done deliberately. Recent advances (Claude Opus 4.5 and enriched developer tooling) mean generated artifacts will be more powerful and more useful than ever; that power must be paired with strong provenance, secret-scanning, safety testing, and clear documentation.
Developers can access Claude Opus 4.5 API etc through CometAPI, the latest model version is always updated with the official website. To begin, explore the model’s capabilities in the Playground and consult the API guide for detailed instructions. Before accessing, please make sure you have logged in to CometAPI and obtained the API key. CometAPI offer a price far lower than the official price to help you integrate.
Ready to Go?→ Free trial of Claude opus 4.5 !
If you want to know more tips, guides and news on AI follow us on VK, X and Discord!
FAQs
1) What does “make a project public” mean in Claude?
For Projects, Claude’s visibility controls let you keep a project private (Only people invited) or share it with Everyone at . Official docs describe those two options — there isn’t a built-button that automatically makes a Project world-public on the internet.
2) How do I make a project public (step-by-step)?
- Open the Project in Claude.
- Click the Share button (to the right of the project name).
- Under General access choose Everyone at to open it to your org.
You can change this at any time.
3) Can I make a Project visible to the entire internet (anyone with a link)?
Not directly. Project visibility is organization-scoped in the official UI. If you need internet-wide access, publish individual artifacts (see next items) or use external deployment/embedding solutions.
4) What’s an “artifact” and how is publishing different from project visibility?
An artifact = a single output (diagram, exported doc, chart, etc.) created inside Claude. Artifacts have their own Publish flow: you can publish an artifact publicly and get embed code to place it on a website. That’s the recommended path when you want a single piece of output visible on the public web.
5) Can I revert a public Project or unpublished artifact back to private/unpublished?
Yes — you can change project visibility any time (Share → choose “Only people invited”). For artifacts, you can unpublish or remove embed links per the artifact controls.


