Thing
@unravel-tech/thing
CLI for thing: push, version, and share artifacts (HTML pages, Markdown docs, standalone images and PDFs) from coding agents.
npx -y @unravel-tech/thing push report.htmlThat first push opens browser approval, waits for sign-in, then resumes and
prints the durable URL. Markdown, images, and PDFs work the same way. Install
globally if you use it often: npm i -g @unravel-tech/thing.
Commands
Command | What it does |
| Show the installed CLI version |
| Install the latest release globally; |
| Explicit device-code login; opens browser approval and stores a token |
| Clear / show the current identity and where pushes land |
| Show or set your server-side default push target (used when no |
| Set a local active team/project override for this machine |
| Authenticate if needed, then push a new immutable version and print the served URL |
| List artifacts you can see |
| Version history for an artifact |
| Point latest back to version n |
| Open the artifact in a browser |
| Run a Model Context Protocol server over stdio (tools: |
Every command accepts --json for machine-readable output.
An unauthenticated push --json emits newline-delimited authentication status;
the final JSON object is always the push result. Use --no-login to fail fast
instead of starting interactive authentication, such as in CI.
Visibility values: private, team, anyone-with-link (prints a tokened share URL), public.
Related MCP server: drop
Updates
Thing supports advisory and required updates published by the Thing server. An
advisory update prints a rate-limited notice to stderr but lets the command
continue. A required update stops normal commands with exit code 3 while
keeping --help, --version, and update available. --json returns a
structured CLIENT_UPDATE_REQUIRED error.
The CLI checks at most once per hour and shows the same advisory at most once
per day. Set THING_NO_UPDATE_NOTICES=1 to hide advisory notices; required
updates cannot be suppressed. thing update --force reinstalls the latest
release even when the current version is still supported.
MCP sessions expose the installed version through the initialization handshake
and the server_info tool. Advisory updates appear in MCP instructions, a log
notification, and the first business-tool result. Required updates leave
server_info available but stop artifact tools until Thing is updated and the
MCP client is restarted.
The corresponding Thing server endpoint and enforcement middleware are
specified in THING_SERVER_UPDATE_POLICY.md.
Context resolution
Which team a push lands in is decided in order: --team flag → .thing.json in the
working directory → a local thing use override → your server-side default
(thing default) → your personal space. Login no longer pins a team, so with none of
the overrides set the server picks your default (e.g. the Unravel org for Unravel members).
MCP
Claude Code, Cursor, Codex, and anything else that speaks Model Context Protocol can publish through thing. No terminal login needed: create a token at usething.ai under Settings, then Tokens, and paste this into your client's MCP config.
{
"mcpServers": {
"thing": {
"command": "npx",
"args": ["-y", "@unravel-tech/thing@latest", "mcp"],
"env": { "THING_TOKEN": "paste-your-token-here" }
}
}
}On a machine that has Bun but no Node, swap npx for bunx:
{
"mcpServers": {
"thing": {
"command": "bunx",
"args": ["-y", "@unravel-tech/thing@latest", "mcp"],
"env": { "THING_TOKEN": "paste-your-token-here" }
}
}
}The server exposes four tools: server_info for the installed version and
update status, push_artifact to publish a file or inline content and get back
a link, list_artifacts to see what you have, and whoami to check which
account and team you are pushing to.
If you already ran thing login, the stored credential is used and
THING_TOKEN can be left out.
Runtimes
Node >= 18 or Bun, no runtime dependencies. The thing executable launches under
whichever of the two is on your PATH (Node first), so a global install works on a
machine that has never installed Node:
bun i -g @unravel-tech/thing
thing loginThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenancePublish live web pages from AI coding agents. Instant shareable URLs for dashboards, landing pages, and reports with password protection.41MIT
- AlicenseNot gradedqualityCmaintenancePublishes HTML pages straight from your AI assistant to a shareable URL, then lets you manage them - update, list, search, fetch, and delete pages in a public or private workspace. Turns "share what I just made" into a single tool call from Claude, Cursor, or any MCP client.MIT
- AlicenseNot gradedqualityCmaintenancePublish the pages you build with AI - as a private, tracked, secure link.MIT
- AlicenseNot gradedqualityAmaintenanceEnables agents to publish HTML artifacts to permanent, shareable, versioned pages on Artifyde via MCP.105MIT
Related MCP Connectors
Publish HTML, files, or a URL to a permanent public URL, then update it — from any MCP agent.
Publish AI-generated HTML & Markdown to a hosted, shareable URL via MCP.
Publish the website you built with AI to a live public URL — straight from chat, no setup.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/unravel-team/thing-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server