Artifacts for Gemini CLI
Gemini CLI lives in the terminal, which means its output lives in the terminal too, or in a file you then have to do something with. thing gives it a publish step: the model writes the page, calls one tool, and returns a URL you can send to a person who has never opened a terminal.
Connect thing to Gemini CLI
Gemini CLI reads ~/.gemini/settings.json. Add thing under mcpServers:
{
"mcpServers": {
"thing": {
"command": "npx",
"args": ["-y", "@unravel-tech/thing", "mcp"],
"env": { "THING_TOKEN": "$THING_TOKEN" }
}
}
}
Gemini CLI expands $VAR inside the env block, so the token can stay in your shell environment rather than in the settings file. Run /mcp in a session to confirm the server connected.
What Gemini CLI can do once it is connected
Ask it to publish and it calls push_artifact with an HTML page, a Markdown doc, an image, or a PDF, then reports the URL. Push the same name again and you get a new immutable version at the same address, with /diff/1/2 showing what changed between any two. Readers leave comments on the page itself, anchored where the question is. Visibility runs from one named person through team, anyone with the link, and fully public.
The other two tools are list_artifacts, for what you have already published, and whoami, for which account and team it is pushing to.
Not using Gemini CLI for everything?
The same artifacts work from every other agent, and from CI. See artifacts for any coding agent for Claude Code, Aider, Cline, shell tools, and pipelines, and for why a page that outlives the session it came from is worth the extra step of publishing.