# Status Updates

> Send progress updates to Discord, Slack, or email at configurable intervals during long-running sessions

- Skill: `kevinzai/status-updates` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kevinzai/status-updates`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kevinzai/status-updates/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: KevinZai (https://skillmd.com/u/kevinzai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kevinzai/status-updates

---


# Status Updates — Progress Reporting via MCP Channels

Send periodic progress reports to Discord, Slack, email, or any MCP-connected channel during long-running Claude Code sessions.

## Overview

When working on extended tasks (overnight builds, large refactors, batch operations), you can ask Claude to send progress updates at regular intervals. Updates are delivered via whatever MCP channels are available in your environment.

## How It Works

```
You:    "Send me a Slack update every 30 minutes"
Claude: Sets CC_STATUS_UPDATES=1, CC_STATUS_INTERVAL=30, CC_STATUS_CHANNEL=slack

→ Every 30 minutes, the status-reporter hook fires
→ Claude detects the signal file and sends an update via Slack MCP
→ Update includes: current task, progress, cost, tools used
```

## Channel Detection

The skill auto-detects available MCP channels in this priority:

1. **Slack** — via `mcp__slack__slack_send_message` tool
2. **Discord** — via Discord MCP or webhook
3. **Email** — via `mcp__gmail__gmail_create_draft` tool
4. **Telegram** — via Telegram MCP
5. **Console** — fallback: prints to stderr

To specify a channel explicitly:
```
"Send updates to Discord every 15 minutes"
"Ping me on Slack when this finishes"
"Email me a summary when done"
```

## Configuration

| Setting | Env Var | Default | Description |
|---------|---------|---------|-------------|
| Enable | `CC_STATUS_UPDATES` | `0` | Set to `1` to enable |
| Interval | `CC_STATUS_INTERVAL` | `30` | Minutes between reports |
| Channel | `CC_STATUS_CHANNEL` | `auto` | Target: slack, discord, email, auto |
| Level | `CC_STATUS_LEVEL` | `brief` | Detail: brief, detailed |

## Update Templates

### Brief Update
```
CC Kit Status Update — 2:30 PM
━━━━━━━━━━━━━━━━━━━━
Task: Refactoring auth module
Progress: 65% (Phase 4/6)
Duration: 45m | Cost: $0.82
Tools: 127 calls (Edit: 45, Read: 38, Bash: 24)
Next: Integration tests
```

### Detailed Update
```
CC Kit Status Update — 2:30 PM
━━━━━━━━━━━━━━━━━━━━
Task: Refactoring auth module
Progress: 65% (Phase 4 of 6: Implementing token refresh)

Completed:
  ✓ Phase 1: Audit existing auth (12m)
  ✓ Phase 2: Write failing tests (8m)
  ✓ Phase 3: Implement JWT validation (15m)
  → Phase 4: Token refresh logic (in progress, 10m)
  ○ Phase 5: Integration tests
  ○ Phase 6: Documentation

Session Stats:
  Duration: 45m | Cost: $0.82 | Context: 62%
  Tools: 127 calls | Files modified: 8 | Tests: 12 passing

Recent Activity:
  - Modified src/auth/token-refresh.ts
  - Added test for expired token handling
  - Fixed race condition in session cleanup
```

### Completion Notification
```
CC Kit — Task Complete ✓
━━━━━━━━━━━━━━━━━━━━
Task: Refactoring auth module
Result: SUCCESS
Duration: 1h 12m | Cost: $1.45
Files: 12 modified, 3 created
Tests: 24 passing, 0 failing
Commit: feat: implement JWT token refresh with auto-renewal
```

### Error Alert
```
CC Kit — Error Alert ⚠
━━━━━━━━━━━━━━━━━━━━
Task: Refactoring auth module
Status: BLOCKED
Error: Build failed — TypeScript error in src/auth/types.ts:42
Details: Type 'string' is not assignable to type 'TokenPayload'
Action: Needs manual review
Duration: 52m | Cost: $1.12
```

## Integration

### With Hooks
The `status-reporter.js` PostToolUse hook runs after every tool call:
1. Tracks tool call count, types, and timing
2. Checks if the reporting interval has elapsed
3. If due: writes a signal file that the skill picks up
4. The skill generates and sends the appropriate update

### With Other Skills
- **confidence-check**: Include confidence level in updates
- **cost-alert**: Escalate if cost ceiling is approaching
- **context-guard**: Include context usage in updates

## Examples

```
"Keep me posted every 15 minutes on Slack"
"Send detailed Discord updates every hour"
"Ping me when you're done with this task"
"Send a brief email update every 30 minutes"
"Notify me if you hit any errors"
```

## Command

Use `/status-updates` for quick control:
- `/status-updates on` — Enable with defaults
- `/status-updates off` — Disable
- `/status-updates configure` — Interactive setup
- `/status-updates now` — Send immediate update
- `/status-updates status` — Show current config

