Gemini CLI extension
The permahost extension connects Gemini CLI to the permahost.io MCP server and loads instructions into every session, so Gemini can publish files and static sites at permanent public URLs when you ask it to.
LLM-friendly version (Markdown): https://permahost.io/docs/plugins/gemini.md
Install
$ gemini extensions install https://github.com/tmphost/permahost
Gemini CLI installs extensions straight from a git URL. The manifest is gemini-extension.json at the root of the public repository tmphost/permahost.
What it adds
| Part | What it does |
|---|---|
MCP server permahost | HTTP server at https://mcp.permahost.io/mcp with one tool, file, and its actions upload, download, get, url and list (MCP tool). |
GEMINI.md | Context loaded into every session: when to use permahost.io, each action, textContent for text files, multi-file sites in one folder, finding a folder to update, and credits. |
Sign in
The server answers an unauthenticated request with 401; Gemini CLI discovers the OAuth endpoints of app.permahost.io from it and opens the browser. Sign in or sign up. To start the sign-in by hand:
> /mcp auth permahost
Allow the tools
Gemini CLI asks before each tool call. To allow the permahost.io tools without asking, add a policy file such as ~/.gemini/policies/permahost.toml:
[[rule]] mcpName = "permahost" decision = "allow" priority = 100
Uploads without a folder id create folders, which spend credits every month, so allow them only if you are happy for Gemini to spend them unprompted.
Try it
> Publish this HTML report and give me the link.
Gemini uploads the file into a new folder with format: "textContent" and answers with its URL, such as https://k7q2m9xa3bd.file.permahost.io/report.html. The id and URL here are examples. Later: "Update the report on permahost with this new version": it finds the folder with list and replaces the file at the same URL.
For large or binary files, Gemini does better with the permahost CLI in its shell: it uploads from disk without passing the bytes through the conversation. See plugin or CLI?
Self-hosted permahost
Define a server named permahost in ~/.gemini/settings.json that points at your server's MCP URL. A server defined there takes precedence over the extension's:
{
"mcpServers": {
"permahost": { "type": "http", "url": "https://files.example.com/mcp" }
}
}
License
The plugin is licensed under the Apache License 2.0. The permahost server it connects to is AGPL-3.0-only.