| name | zulipchat-loop |
| description | Run the current Claude Code session as a continuous Zulip-aware work loop. |
| disable-model-invocation | true |
Zulip loop
Use this skill when you want the session to behave like a continuous autonomous worker
that still remains steerable from Zulip.
Treat $ARGUMENTS as the current mission or loop objective.
Required setup
- Read
ZULIPCHAT_SESSION_ID, ZULIPCHAT_SESSION_STREAM, and
ZULIPCHAT_SESSION_TOPIC from the shell.
- If the session is not bound yet, stop and explain the missing hook setup.
Loop contract
Each cycle should do exactly this:
- Poll
poll_agent_events(session_id=..., limit=20).
- Incorporate any owner steering or commands before doing more work.
- Decide whether the lifecycle state changed. If it did, emit one lifecycle message.
- Do one concrete unit of work toward the mission.
- If blocked on owner input, call
request_user_input(...) and wait.
- Exit the loop when the mission is complete, the owner pauses or cancels the
session, or the session binding is closed.
/loop integration
If the current Claude Code build exposes the native /loop command, this skill's
instructions are the policy for each loop turn. If /loop is not available, follow
the same cycle in the current conversation instead of failing.