comis account, install the package, and register a hardened systemd
service. Use this path on a Linux server where you control the operating system.
For a user-scoped install that does not change system services, use the npm
guide.
You don’t need to understand the technical details to use this feature. The configuration examples below are copy-paste ready.
Before you begin
You need:- a Linux host with a working systemd installation;
- root access or a user that can run
sudo; - outbound HTTPS for system and npm packages;
- one usable model path: a provider credential, supported OAuth login, or a local provider; and
- enough memory and disk for your chosen channels, tools, browser runtime, and local models.
Install Comis
1
Connect to the host
2
Download and review the installer
bash comis-install.sh --help for service,
browser, and non-interactive options.3
Run the reviewed installer
comis user and writes an installer-managed
/etc/systemd/system/comis.service. A regular-user run offers to elevate;
--no-user is the explicit current-user alternative.The installer must finish with a verified CLI and successful service setup.
Treat any warning or nonzero exit as incomplete installation and inspect the
command output before continuing.4
Initialize as the service user
/home/comis/.comis/.env; its master key is required to recover
/home/comis/.comis/secrets.db.5
Verify the service
Browser choices
On Linux, the managed installer attempts to provision Chrome and Xvfb by default. Provisioning is best-effort: failure to install a browser does not pretend the browser tool is usable, and a user-scoped systemd install runs the browser headless because it cannot manage the system Xvfb companion. Run the reviewed local installer with the option you need:Optional egress diagnostics
The installer does not change iptables by default. On a Linux systemd install that creates the dedicatedcomis user, you can explicitly enable outbound
packet logging after reviewing it:
COMIS_EGRESS iptables chain with LOG+ACCEPT
rules. It records outbound packet metadata, including remote destinations, in
the kernel journal under the comis-egress: prefix. Logging is limited to 10
entries per minute with a burst of 20. It does not inspect packet content and
does not block or restrict traffic. Destination metadata can be sensitive, so
egress logging is disabled by default.
Review captured entries with:
--uninstall --purge removes an installer-created COMIS_EGRESS chain even
when the opt-in flag is not present on the uninstall command.
Codex OAuth on headless hosts
For OpenAI Codex, use device-code login from the service user’s TTY:Operate the service
The CLI detects the installer-managed supervisor:Upgrade
Download the current installer to a new file, inspect it again, and preview the upgrade before running it:Troubleshooting
The installer reports incomplete service setup
The installer reports incomplete service setup
Do not continue from the success path. Inspect:Correct the reported package, permission, configuration, or port problem,
then rerun the same reviewed installer.
The daemon starts but health checks fail
The daemon starts but health checks fail
Run
comis doctor as the service user and inspect recent logs. Confirm the
selected model has working authentication and the gateway host and port are
not already in use.Uninstall
The default uninstall removes the managed service and CLI but preserves data:/home/comis/.comis (or the selected user’s home). The installer prints the
resolved path in the confirmation and completion messages.
--dry-run first to preview every Comis-specific path.
Next steps
Connect channels
Add only the messaging adapters your deployment needs.
Configure agents
Set models, tools, budgets, memory, and routing.
Production hardening
Review host, gateway, tool, credential, and approval boundaries.
Operations
Monitor health, logs, metrics, and background work.
