Runi Help

Nothing is appearing in Runi

The seven reasons a workspace stays empty, in the order worth checking, each with the line that proves it.

A silent Runi is always one of a small number of things, and every one leaves a trace on the machine. Start with the doctor. It reads all of those traces in one pass and prints a line per subsystem, which is faster than working down this page by hand.

terminal — run this first
$ cd # into the repository where you expected work to appear
$ runi doctor

Not on your path? It sits beside the daemon at ~/.relay/relay-doctor. It exits 1 when anything failed, so a script can gate on it. Every line it can print is explained in Reading runi doctor.

The seven causes, in order#

Check them in this order. Each one makes the ones below it impossible to diagnose.

1. This machine is not signed in#

The doctor says
Line
output
 FAIL  config    ~/.relay/config.json missing or unreadable —
                install from the app (Settings → Agents)
Cause

The daemon has no credentials. It signs in separately from the app, so being signed into the window proves nothing about this.

Fix

Connect an agent from Settings → Agents, which performs that sign-in. See Connect your first agent.

2. The repository is not tracked#

The most common cause by a distance
Line
output
 warn  this repo scratchpad (a1b2c3) is not tracked — sessions here
                stay private. Add it in the app under Repositories.
Cause

Hooks are installed globally and do nothing outside tracked repositories. Nothing is captured and nothing is sent.

Fix

Add it in Settings → Repositories, then start a new session. See Repositories.

3. No hooks are registered#

Nothing is watching the agent
Line
output
 warn  hooks     no Runi hook entries registered — connect Claude Code
                from the app
Fix

Connect that agent. If you connected from the portable Windows build, it was refused on purpose. See Install problems.

4. Hooks point at a file that is gone#

The failure that has cost the most hours
Line
output
 FAIL  hooks     registered but pointing at missing file(s):
                C:\Users\…\Temp\2F8B\relay-hook.cmd — reinstall from the app
Cause

The hook points at a file that has gone. Almost always because Runi was connected from the portable build, whose folder disappears when you quit it. The hook then fails silently on every event, which looks exactly like "no work happened".

Fix

Reconnect the agent from an installed build.

5. The two hooks that carry the product are missing#

Busy-looking, and useless
Line
output
 FAIL  hooks     SessionStart not registered — sessions start with no
                team briefing and adopt no task
Cause

A machine registered only for the later events publishes steps and turn endings all day, so the teammate looks busy, while every session starts with no briefing, no linked task and no prompt. This is why the doctor checks which events are registered instead of counting them.

Fix

Reconnect the agent from the app, which registers the full set.

6. This account cannot write#

Refused, not broken
Line
output
 FAIL  publish   last attempt failed: access-denied — this account is
                read-only in the workspace, or was removed

 FAIL  publish   last attempt failed: auth-expired — sign in again
                from the app
Fix

For access-denied, ask an owner or admin for member access. A viewer's writes are refused by the database, not hidden by the UI. For auth-expired, sign in again from the app.

Either way, expect a pile of dead letters afterwards. Deal with those here.

7. Writes are queued, or were refused#

Captured, not delivered
Line
output
 warn  outbox    14 write(s) waiting (oldest 2 h ago)
 FAIL  dead-letter 863 rejected write(s) need review
Fix

Pending writes replay on their own with bounded backoff. Rejected ones need a decision from you: Queued and rejected writes.

Agent-specific silence#

AgentThe usual reason
OpenClaw Its default workspace is not a Git repository, so there is nothing to attribute a session to. Expected on a fresh install, and the doctor says so by name.
Codex The rollout watcher is not running, so Desktop and VS Code sessions are unobserved. Opening the Runi app starts it.
Cursor Version older than 2.2. Agent hooks did not exist, so the connect registered nothing.
OpenCode Version older than 1.18. The plugin is not loaded.
Gemini CLI Version older than 0.5. No hook system to register into.
Claude Code on the web Runs in a cloud sandbox with no local machine to observe. Not supported, and cannot be.

Registered, and still nothing#

Registration is not firing. A hook can be written perfectly into a settings file the agent never reads, or a wrapper the shell cannot execute, and that failure is invisible from the settings alone. So the doctor compares registration against what has arrived:

output
 warn  hooks     registered but never observed firing: SessionStart —
                other events have arrived, so the hook runs; these specific
                ones are not reaching it

If you see that, run the hook by hand and read what comes back. Nothing is published under DRY_RUN:

terminal
$ echo '{"hook_event_name":"UserPromptSubmit","prompt":"hello"}' \
    | DRY_RUN=1 node ~/.relay/daemon/hooks/claude.js

Everything is green and the app still looks empty#

The doctor's closing line covers this:

output
Nothing broken. If the app still looks empty, work in a tracked repo
and give it one prompt.

Three states that are working as designed:

  • The workspace is new. There is nothing to brief with until sessions have happened. See What to expect in the first hour.
  • You are alone in it. Most of the surface is about other people. One seat sees activity, not collaboration.
  • Your sharing switches are off. Files still travel; prompts and change detail do not. See The two sharing switches.

Still stuck#

Email us and paste the doctor's output. It is the single most useful thing you can send, and it usually turns three exchanges into one.

Did this solve it?