Documentation

Everything you need to install cemainou on your own server and put your team to work. The full guide is also in the archive: docs/installation.md.

What cemainou is

A web app you install on your own server, plus an MCP server through which your team’s AI agents write into it. People work in the app, in the browser or as an app on their phone; agents (Claude, ChatGPT, Cursor, Codex, Gemini) work over MCP: they make plans, add tasks, pick them up and report what got done.

Everyone sees what concerns them: the team sees the projects, the lead sees what moves and what is stuck, a collaborator sees only their projects, and the client only their project, without hours and without anything internal.

What is on the server

One Laravel application. It installs no services, starts no long-running processes and sends nothing out unless you choose.

  • The web app, for people, at the address you choose (for example https://team.example.com).
  • The MCP server, for agents, at /mcp on the same address, with a key per agent or OAuth sign-in, for apps.
  • The data/ folder, with everything the installation keeps: the settings (.env, with the application key), the SQLite database, the files, the backups, the sessions and the logs. The code can be replaced at any time without touching data/.

Requirements

  • PHP 8.4 or newer, with mbstring, openssl, fileinfo, intl, zip, ctype, tokenizer, dom and pdo_sqlite (or pdo_mysql); sodium for updates from the browser.
  • A database: SQLite (recommended, nothing to set up) or MySQL 8 / MariaDB 10.2.
  • Write access for PHP to data/, storage/ and bootstrap/cache/.
  • The site’s document root on the public/ folder. If the hosting does not allow it, an .htaccess in the archive sends everything through public/.
  • HTTPS: agents connect over https only.
  • Space: the archive is 26 MB, the installed app around 125 MB; to start, we recommend about 1 GB free.

What grows over time. The database stays small (a few MB for hundreds of updates). The space goes to the files uploaded to projects and to the backups in data/backups: each backup copies the database and the files, and the last 7 are kept by default. To use less, keep fewer backups (Settings → Backup) or move them to another disk from time to time.

It runs on ordinary hosting (DirectAdmin, cPanel), on a VPS or in Docker. The installer checks everything above by itself and says what is missing.

Installing

  1. Download the archive from the main page and upload it to your hosting, in a folder of its own. Extract it there.
  2. Open the address in a browser. The first visit prepares data/ and takes you to the installer.
  3. The installer checks the server, then asks for the address, the team’s language and timezone, the first admin and the database.
  4. “Install and sign in”: the database is created, the admin is signed in, and the installer is gone.
  5. In Admin → Settings: email (for invitations and “Forgot your password?”), channels, backup. In Admin → People: invitations.

Keep APP_KEY from data/.env somewhere safe: the secrets in Settings (the email password, the channels) are encrypted with it.

Connecting agents

Everyone connects their agent once, from Profile → Agents.

Claude Code, Cursor, Codex

The Profile gives a command to paste in a terminal, valid for 10 minutes. It connects the MCP server with a new key, adds the short command /upd and the hooks that measure working time. It also works with Claude Code from the desktop app.

The ChatGPT and Claude apps

On a computer or a phone, as a custom connector, with the address https://your-address/mcp. The app opens cemainou, the person signs in with their account and presses “Allow”. No command and no key to copy.

Working time

With Claude Code, Cursor and Codex, time is measured by itself, from the agent’s sessions (through hooks). From the ChatGPT and Claude apps there is no way to see when you work, so you tell the agent in a sentence (“I worked two hours on the town hall site”) or add it in cemainou. Everything else (plans, tasks, updates, reports) works the same from any agent.

What the agent can do

Report what got done (/upd: the agent drafts it from the conversation and from git, the person confirms), see and take tasks, add new tasks, plan a new project, read the project’s context and what colleagues did. The agent sends only what the person approves; code, files and conversations stay with them.

Connection trouble?

The problems real people ran into, each with its fix. The connection window in the Profile shows right away whether it worked and what is missing.

“Claude Code is not installed or not in PATH”

The command looks for Claude Code in the usual install places by itself. If it still cannot find it, either install it (curl -fsSL https://claude.ai/install.sh | bash, then a new terminal) or work only in the Claude desktop app: the command works without Claude Code in a terminal too.

I only use the Claude desktop app

In the connection window, copy the text “for your agent” and paste it in the chat: the agent runs exactly our command. Then restart the app. Don’t let the agent set things up by itself: it would add only the server, without time tracking.

I have an old “whatsupai” server

Run the command from the Profile again: it replaces it with “cemainou”, with a new key, and keeps the rest of your settings.

“A command takes file @-mentions but no other…”

That is a Claude desktop app message. Send the / command on its own, with no text or links after it; say the rest in your next message.

The agent works, but time is not measured

The hooks are missing: run the command from the Profile again, exactly as it is, and open a new session. With the ChatGPT and Claude apps (connector), time cannot be measured by itself: tell the agent in a sentence.

“The connect code has expired”

The command works once, for 10 minutes. Make a new one from Profile → Agents.

“The server does not accept the key”

The key was revoked or the account is inactive. Connect again from the Profile; if that fails, ask an admin.

Anything else? Write to mail@rt.md, with the exact message from the terminal.

People and roles

  • Admin: settings, people, updates, backup.
  • Lead: leads projects, assigns tasks, sends the monthly reports to clients.
  • Member: works on the team’s projects.
  • Collaborator: someone from outside; sees only the projects they are added to.
  • Client: sees only their project, without hours and without anything internal; asks for what they need and points at their site to say what should change.

Clients don’t count towards the 5 free people.

Email, cron, channels

Email (recommended)

In Settings → Email, an SMTP server. Without it, invitations are links you send yourself.

Cron (optional)

Without cron, the daily cleanup, the backup and the weekly summary run on the first visit after their time. With cron, on time:

* * * * * cd /path/to/cemainou && php artisan schedule:run >> /dev/null 2>&1

Email to task, Telegram, Slack (optional)

Every project can have an email address: what is sent there becomes a task, with its files. Published updates can go to a Telegram group or a Slack channel, and everyone can get their notifications on Telegram. All from Settings.

Updates

Admins see on the Today page when a new version is out. The archive is downloaded and uploaded on the update page: it installs only if it carries the RT signature and every file matches, after a backup. The old code stays until the next update. If PHP cannot write to the application folder, upload the archive over FTP on top of the code, without data/, and the page finishes the database step by itself.

Backup

Daily, the last 7 kept, in data/backups: the database, the files and a manifest, in a zip archive. One can also be made at any time from Settings. To restore (SQLite): database.sqlite into data/ and files/ into data/files, with the same APP_KEY.

License

The cemainou license, based on the FSL: the code can be read, used and changed for anything except a competing product. An installation is free while up to 5 people use it. Above that, one license for that installation, with any number of people, at a price you choose: €200, €400 or €900 a year. The key goes in Settings → License; without it, everything keeps working, only updates stop. Every version also becomes Apache 2.0 two years after its release.

Help

The feedback button in the app reaches your admins and, if you choose in Settings, us too. For anything else: mail@rt.md. We answer on working days, usually the same day.