Run it live during the client call
Work from top to bottom. Tick items as they are confirmed, copy command blocks into the terminal when appropriate, and pause whenever a client approval or credential decision is required.
Security rule: do not ask for raw card details or passwords in chat. The client should approve signups, payments, OAuth prompts, and credential entry directly.
1. Installation goal
By the end of the session, the client should have:
2. Pre-install decisions
Confirm these decisions before touching the server.
3. Client prerequisites
Ask the client to prepare these before the session.
Accounts and access
Local information
Security expectations
4. Target machine requirements
Use a modern Linux host for the smoothest install.
5. Environment preparation
Run these checks before installation.
whoami
id
sudo -v
uname -a
cat /etc/os-release
git --version
python3 --version
node --version || true
npm --version || true
curl --version
6. Hermes installation
Hermes is installed first because it becomes the operator interface for the rest of the setup.
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes --version
hermes setup
hermes auth
hermes chat -q "Reply with: Hermes is working."
hermes doctor
7. Hermes configuration checklist
Complete the Hermes configuration before connecting external systems.
hermes config path
hermes config env-path
hermes config
hermes tools list
hermes tools
Recommended initial toolsets for a client operator install:
8. Optional Hermes messaging gateway setup
Skip this section if the client will use Hermes only from the terminal.
hermes gateway setup
hermes gateway run
hermes gateway install
hermes gateway status
hermes gateway restart
ls ~/.hermes/logs/
Verification:
9. Paperclip installation
Paperclip should not run as root when using its embedded PostgreSQL. Create a dedicated runtime user.
/opt/paperclip
sudo git clone --depth 1 https://github.com/paperclipai/paperclip.git /opt/paperclip
sudo id paperclip 2>/dev/null || sudo useradd -m -s /bin/bash paperclip
sudo chown -R paperclip:paperclip /opt/paperclip
cd /opt/paperclip
sudo corepack enable
sudo corepack prepare pnpm@9.15.4 --activate
sudo runuser -u paperclip -- bash -lc 'cd /opt/paperclip && pnpm install'
sudo runuser -u paperclip -- bash -lc 'cd /opt/paperclip && pnpm paperclipai onboard --yes --bind loopback'
Expected important paths:
/home/paperclip/.paperclip/instances/default/config.json
/home/paperclip/.paperclip/instances/default/db
10. Start and verify Paperclip
sudo runuser -u paperclip -- bash -lc 'cd /opt/paperclip && pnpm dev:once'
For a long-running install, start it through a service, tmux session, or helper script rather than leaving it tied to a temporary SSH session.
curl -sS --max-time 5 http://127.0.0.1:3100/api/health
Expected result includes a healthy status such as:
{"status":"ok"}
curl -sS --max-time 5 http://127.0.0.1:3100/api/companies
http://127.0.0.1:3100
or the client’s configured private/public URL.
Verification:
11. Recommended Paperclip helper commands
Create helper commands so the client can start, stop, and inspect Paperclip after handoff.
sudo tee /usr/local/bin/paperclip-start >/dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
cd /opt/paperclip
exec runuser -u paperclip -- bash -lc 'cd /opt/paperclip && pnpm dev:once'
EOF
sudo tee /usr/local/bin/paperclip-stop >/dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
cd /opt/paperclip
exec runuser -u paperclip -- bash -lc 'cd /opt/paperclip && pnpm dev:stop || true'
EOF
sudo tee /usr/local/bin/paperclip-status >/dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
curl -sS --max-time 5 http://127.0.0.1:3100/api/health || true
printf '\n'
runuser -u paperclip -- bash -lc "cd /opt/paperclip && pnpm dev:list" || true
EOF
sudo chmod +x /usr/local/bin/paperclip-start /usr/local/bin/paperclip-stop /usr/local/bin/paperclip-status
paperclip-status12. Create the first Paperclip organization
Use the UI if the client prefers a guided experience. Use the local API for repeatable setup in trusted loopback mode.
Example local trusted API flow:
curl -sS -X POST http://127.0.0.1:3100/api/companies \
-H 'Content-Type: application/json' \
--data-binary '{"name":"Client Agent Team","description":"Initial client Paperclip organization.","budgetMonthlyCents":0}'
For a safe placeholder Hermes CEO/operator agent, use a process adapter that prints a harmless heartbeat rather than executing real work.
Checklist:
13. Optional Codex-backed Paperclip agents
Only complete this section if the client wants Paperclip agents to execute work through local Codex.
sudo npm install -g @openai/codex
sudo runuser -u paperclip -- bash -lc 'codex --version'
sudo runuser -u paperclip -- bash -lc 'codex login --device-auth'
sudo runuser -u paperclip -- bash -lc 'codex login status && test -f ~/.codex/auth.json && echo auth-json-present'
Expected success includes:
Logged in using ChatGPT
auth-json-present
Adapter verification:
curl -sS --max-time 120 -X POST http://127.0.0.1:3100/api/companies/$COMPANY_ID/adapters/codex_local/test-environment \
-H 'Content-Type: application/json' \
--data-binary '{"adapterConfig":{"cwd":"/opt/client-workspace","model":"gpt-5.3-codex","modelReasoningEffort":"medium","dangerouslyBypassApprovalsAndSandbox":true,"timeoutSec":900}}'
Expected checks include:
14. Hermes + Paperclip operating configuration
Configure the system so the client knows who is responsible for what.
15. Verification script for final install review
Run a final verification before handoff.
Hermes verification
hermes --version
hermes doctor
hermes chat -q "Say 'Hermes verification passed' and nothing else."
hermes config path
hermes gateway statusPaperclip verification
curl -sS --max-time 5 http://127.0.0.1:3100/api/health
curl -sS --max-time 5 http://127.0.0.1:3100/api/companies
paperclip-status
Optional Codex agent verification
16. Troubleshooting guide
Hermes command not found
Hermes cannot call the model
Hermes gateway is silent
Paperclip fails with a PostgreSQL/root error
Cause: embedded PostgreSQL cannot run as root.
Paperclip health endpoint fails
Paperclip UI loads but agents do not work
Paperclip creates recovery or stalled issues
Host blocks Codex sandboxing
17. Handoff notes template
Complete this before the install session ends.
Client:
Install date:
Installer:
Hermes
- Installed for user:
- Hermes version:
- Config path:
- Env/secrets path:
- Provider/model:
- Enabled toolsets:
- Gateway enabled: yes/no
- Gateway platforms:
- Gateway restart command:
- Known warnings:
Paperclip
- Install path:
- Runtime user:
- Config path:
- Data path:
- UI URL:
- API URL:
- Health endpoint result:
- Start command:
- Stop command:
- Status command:
- Organization/company ID:
- Initial agents:
- Initial projects:
- Adapter type(s):
- Codex auth verified: yes/no/not applicable
- Live runs at handoff:
- Known warnings:
Security and operations
- Who owns credentials:
- Backup plan:
- Approval gates:
- External actions allowed:
- Reporting cadence:
- Escalation contact:
Final verification
- Hermes doctor run: yes/no
- Hermes model test passed: yes/no
- Paperclip health passed: yes/no
- Paperclip UI verified: yes/no
- Paperclip agents verified: yes/no/not applicable18. Client sign-off
Ask the client to confirm each item before closing the session.
19. Minimum acceptance checklist
The installation is not complete until these are true: