Your home to publish and share what your AIs make. Documents, decks, dashboards and small apps become pages at your address, on your own server, over MCP.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Documents, slide decks, dashboards and small apps, as pages at your address on your own server, where your team works on them, whichever AI made them.
Website · Documentation · Brand · Contributing · Security
Cahut installs with one command on a Linux server. Claude, ChatGPT, Mistral Vibe or any MCP client publish to it, and you share a link instead of sending a file. Your team reads it and asks the AI for the next version, in Rooms where people and their AIs work on the same Windows. The AI does on its own what can be undone, a human approves the rest, and every action is logged.
See what AIs published, without an account. demo.cahut.cloud/examples holds Windows that AIs made and published, each with the prompt that made it: a small shop, a deck the team comments on, a CV, a team report, a travel journal.
Without a server, in two minutes. Sign up for My Cahut, a free Cahut at with limited seats, and connect Claude or Mistral Vibe, even on their free plans, or ChatGPT on a Business, Enterprise or Edu plan. .
my.cahut.cloudOn your own server, in one command. On a fresh Ubuntu or AlmaLinux server, with ports 80 and 443 open and a domain that points to it:
curl -fsSL https://cahut.cloud/install.sh | sudo sh -s -- --domain cahut.example.com
Installation says what the script does and how to connect your AI.
If Cahut is useful to you, a star helps others find it.
[!WARNING] Cahut is young: its first release came out on 21 October 2026. It does not run the code of a Window on the server, take comments, export to PDF or PowerPoint, sign people in through single sign-on, or make backups. Keep snapshots of your server.
Today, what your AIs make stays at the AI's place. A Claude link, a ChatGPT link, a Gamma deck: each lives on the service of the AI that made it. To publish it, share it or work on it with others, you turn it back into a file.
Word, PowerPoint and Excel were designed for humans who write, lay out and calculate by hand. When an AI makes the content, a page at its own address does better: it updates, keeps its previous version, opens to the people you choose, and keeps what its readers write.
Publish, share, work together: today, all three are hard.
Your AIs make it and publish it. You share it and work on it together. Everything they produce lives in one place, as pages at your address, on your server, whatever the AI.
Cahut does not create content, it hosts it. It does not compete with AIs or creation tools: it is the neutral, self-hosted home where their work lives, and where your team works on it.
| Layer | Who handles it | What it brings |
|---|---|---|
| Create | The AIs (Claude, ChatGPT, Mistral...) | The content: documents, decks, dashboards, apps |
| Publish, share, work together | Cahut, on your server | A page at your address, a link opened to the right people, Rooms where the team and its AIs work, versions, search, the data of each page, Logbook |
The AIs stay outside. They connect to Cahut over MCP, drop their work through bounded operations, then disconnect. No AI model runs on the server.
flowchart LR
subgraph AI["Create: the AIs"]
C[Claude]
G[ChatGPT]
M[Mistral Vibe]
P[Any MCP client]
end
subgraph CAHUT["Cahut, on your server"]
H["Your Cahut: publish, share, access, versions, search, data, Logbook, irreversible actions approved by you"]
end
subgraph READ["Read"]
E[Your team]
CL[Your clients]
PU[The public]
end
AI -- MCP --> CAHUT
CAHUT -- a link --> READ
cahut.example.com/marketing/q3-review. The previous version is kept.Everything below works in the latest release.
| Area | What it does |
|---|---|
| Installation | One command on a fresh VPS or dedicated server (AlmaLinux or Ubuntu), a guided first start in the browser, and cahut doctor to check the server |
| AI access | A native MCP server over HTTP, with OAuth or a personal token, for claude.ai, Claude Desktop, Claude Code, ChatGPT, Mistral Vibe and any MCP client |
| Skill for Claude | A skill that teaches Claude to make Windows and publish them, packaged as a plugin for Claude Code |
| Pages | Documents, decks, dashboards and static sites, each at its own address in its Room, in a sandbox that holds it to what its AI declares it loads and calls |
| Sharing | Window by Window: its Room only, internal (everyone in the Cahut), a Key (a password) or public, with an optional end date; share links that open a Window without an account, until they end |
| Invitations | A Window sent by e-mail, to people of the Cahut or outside it, with a personal link in place of its Key |
| Versions | Two versions kept per Window, a rollback in one gesture, and a trash |
| Search | Find any page, deck or dashboard of your Rooms by a word of it or a tag |
| Data | A SQLite database for each Window, on your server: polls, forms, petitions and trackers keep what their readers write |
| Users and Rooms | The people of each Cahut and its admins, a personal Room for each person, team Rooms with owners and members |
| Sign-in | Accounts of each Cahut, with a link by e-mail for a forgotten password |
| Knock first | What an AI cannot undo waits for its person, who approves or declines it in the console |
| Web console | In English and French: Knocks, Rooms, Windows, people, connected AIs and the Logbook under /console/ of each Cahut, and a console for the administrators of the server under /server/ |
| Domains and TLS | Several Cahuts per server, each at its own domain or subdomain, no wildcard needed, automatic certificates |
| Limits | People, Rooms, Windows and disk for each Cahut, set by the administrators of the server, and Cahuts where each person works alone |
| Moderation | Reports of Windows from anyone, without an account; the administrators of the Cahut and of its server withdraw a Window with a reason, and reinstate it |
| Logbook | History of every action: who, which AI, on whose behalf, with what result |
| Updates | Daily, from the signed releases on GitHub, with a snapshot of the databases and a rollback |
What Cahut does not do:
The AI is the intended operator of Cahut, but never without guardrails.
| The AI does it alone (reversible) | A human approves (irreversible) |
|---|---|
| Publish or update a Window (the previous version is kept) | Purge a Window from the trash, or delete a team Room |
| Open a Window to its Room, its Cahut or a Key, until a date | Make a Window public |
| Put a Window in the trash, and restore it | Add a person to a Cahut, or delete one |
| Roll back to the previous version | Change the role of a person, the members of a Room or their roles, or widen the reach of an AI |
| Change the data of a Window, after a copy it goes back to | Remove a table or a column from the data of a Window |
Each lives on the service of the AI that made it, and is shared on that service's terms. Cahut keeps the work of every AI in one place, on your server, at your address. Each Window opens to the people you choose, keeps its previous version and can keep what its readers write, and every action goes to the Logbook. The two go together: ask Claude to publish its artifact to your Cahut.
Gamma makes decks and documents with its own AI and hosts them on its service. Cahut makes nothing: it hosts what your own AIs make, a deck or anything else they write as a web page, on your server.
They deploy sites for developers, from a repository or a command line. In Cahut, the AI publishes over MCP, with no Git, deploy key or build step. Each page opens to the people you choose, by Room, Key or share link, and what cannot be undone waits for a person.
They run the apps that developers deploy, from Git and in containers. Cahut hosts the pages that AIs publish themselves, through typed operations that never give them a shell, and lets people share each one by link. It does not run apps on the server.
Nextcloud stores, syncs and shares files, and edits office documents. Cahut serves pages, not files: each Window opens in a browser at its own address, runs its scripts in a sandbox, and can keep what its readers write in a database of its own.
A Window is HTML and its files: scripts, styles, images, fonts and data. No code of a Window runs on the server, and its pages load and call only the origins its AI declared. What Cahut can and cannot do gives the detail and the limits.
Cahut speaks the language of the house, in plain English.
| Word | What it means |
|---|---|
| Cahut | An instance on your server, at its own domain. One server can hold several |
| Room | A personal or team space, with its members, at <domain>/<room> |
| Window | A living page: document, deck, dashboard or app, at <domain>/<room>/<window> |
| Key | The password that opens a protected Window |
| Knock first | The governance rule: the AI knocks before any irreversible action |
| Logbook | The record of every action |
Each Window opens to its Room only, to everyone in the Cahut, to anyone with its Key, or to the public.
On a fresh AlmaLinux or Ubuntu server, with ports 80 and 443 open and a domain that points to it, run:
curl -fsSL https://cahut.cloud/install.sh | sudo sh -s -- --domain cahut.example.com
The script checks the signature of the release and installs Cahut as a systemd service. It opens the firewall, sets up the daily updates and runs cahut doctor. It ends with a single-use link: open it to finish in the browser, where you choose your account and connect your first AI. Without --domain, Cahut takes the server's public IPv4 address, with a certificate for that address. You can move it to a domain later, from the console.
Then give your AI the address of the MCP server, https://cahut.example.com/mcp. It sends you to the console to sign in and choose what it may do:
| AI client | Where |
|---|---|
| claude.ai, Claude Desktop | Customize, Connectors, add a custom connector, on every plan |
| Claude Code | /plugin marketplace add cahutcloud/cahut, then /plugin install cahut@cahut, which also brings the skill for Claude |
| Mistral Vibe, formerly Le Chat | Context, Connectors, add a new custom connector, on every plan |
| ChatGPT | On the web, Plugins, Add, then Add custom MCP server, with OAuth, on the Business, Enterprise and Edu plans only: not on Free, Plus or Pro |
| Others | Any MCP client over HTTP, with OAuth or a personal token |
Ask it for a deck: it publishes a Window and gives you its address. You choose who opens it in the console.
Cahut updates itself every day from the signed releases, patch releases by default. It snapshots the databases first, and goes back on its own if the new version does not start. sudo /usr/local/bin/cahut doctor says what is wrong with the server, and sudo /usr/local/bin/cahut update updates at once. The documentation covers the rest: the options of the installer, a Cahut without a domain, several Cahuts on one server, and updates.
Cahut is written by one person, with a lot of help from Claude Code. These rules hold for every change, whoever or whatever wrote it:
Contributions made with an AI are welcome under the same rules: Working with an AI says them.
Cahut is written in Go: a new, clean codebase built for Cahut, which one person must be able to carry end to end. Go gives a single static binary that is simple to install and update on a standard Linux, and a standard library that covers HTTP, TLS and cryptography.
| Topic | Choice |
|---|---|
| Nature | A platform on a standard Linux, not an operating system |
| Hosting | One server holds one or more Cahuts, each with its own domain, people and data |
| Language | Go |
| AI interface | MCP over HTTP, with OAuth or a personal token |
| Web console | A Preact app embedded in the binary, served under /console/ of each Cahut, and under /server/ for the administrators of the server, using the same API as the AIs: no capability is reserved for it |
| Web and TLS | Built into the binary, automatic certificates with CertMagic, Windows at paths of their Cahut's domain, each in a CSP sandbox |
| Database | SQLite in pure Go, so the binary stays static, one database per Cahut, and one per Window for its data, run in a confined process |
| Authorization | Cahut's own minimal OAuth 2.1 server, built for MCP clients |
| Updates | Daily, from the signed releases on GitHub, with a rollback |
| Website and docs | Astro sites in this repository, built on the brand guidelines, served from the project's own server |
| License | AGPL-3.0 for the repository; the name and the logo stay apart |
The reasons behind each choice are in the architecture decision records.
cmd/cahut/ Entry point of the cahut binary
internal/ The code of Cahut, private to this module
install.sh Installs Cahut on a server as a systemd service
docs/ Project documents: architecture decision records in English; the brief, the V0 plan and the brand guidelines in French
sites/ The website and the documentation, Astro sites built on the brand guidelines
Building Cahut needs Go 1.27 or later, make, and Node.js at the version of .nvmrc for the web console, which the binary embeds. make build builds bin/cahut, and make check runs the linters, govulncheck and the tests, as CI does, without Node.js. Run make for the full list of tasks. The sites need Node.js too: see sites/README.md.
Releases are static binaries for linux/amd64 and linux/arm64, built by GoReleaser when a version tag is pushed.
Batches 0 to 11 are done. On 27 October 2026, the first version met its five success criteria on a fresh Ubuntu server, with Claude and ChatGPT (acceptance, in French):
| Criterion | Threshold |
|---|---|
| Install on a fresh VPS | Under 10 minutes, one command |
| First publication by an AI | Under 5 minutes, without touching the server |
| Sharing by a non-technical person | A deck shared by link in a few minutes |
| Supported AIs | The same Cahut works with at least two different AI clients |
| Governance | Every AI action is in the Logbook, and is either reversible or was approved |
The roadmap on cahut.cloud tells each batch, and what works today.
Cahut is maintained by one person, in the open. GOVERNANCE.md says how the project is run, CONTRIBUTING.md what helps and how a change gets in, SUPPORT.md where to ask for help, and SECURITY.md how to report a vulnerability, privately. Questions and ideas go to the Discussions. Everyone who takes part follows the code of conduct.
Cahut is free software under the GNU Affero General Public License, version 3 (LICENSE). You can run it, study it, change it and share it. If you change it and let others use your version over a network, you give them your changes under the same license. Installing or distributing Cahut as it is asks nothing more than keeping the license with it.
The name Cahut and its logo identify this project and are not covered by this license. Say that something runs on Cahut or works with Cahut; do not use the name or the logo for a product, a service or a domain of your own, and give a fork its own name. TRADEMARK.md says this in full.
ADR 15 records the decision and the options set aside.
Cahut is a personal project by Olivier Durand, independent of any company and of any AI vendor.
cahut.cloud · docs.cahut.cloud