Claude Code logo
Claude Code template
api.slack.comdocs.claude.com

Slack Daily Brief

A five-line Slack brief that leads with what changed — and says so in one line when nothing did. You approve every post; it never schedules.

NewNew8.8 KB snapshotStarter VM
Claude Code logo

What's inside

Harness

Claude Code

Plan

Starter

vCPU

1

Memory

2 GiB

Snapshot

8.8 KB

How it works · ~3 minutes

  1. 01 · Fork

    New isolated microVM on your subdomain — creator state included.

  2. 02 · Your keys

    Log into Claude Code with your own model credentials (BYOK).

  3. 03 · Ask it to work

    Open the terminal and give it a real job. You keep what ships.

30-day money-back on your first purchase · no free trial · keys never leave the VM

About this template

By week two, everyone muted the channel

The automated digest posted the same seven-row status table every morning. Then the one morning something actually broke, nobody read it.

Lead with what changed, or say nothing changed

If nothing material changed, the brief is one line saying so. That's a correct output, not a failure — and it's the single biggest reason a digest survives past week two.

Five rules keep it readable:

  1. Lead with the delta, never a status table
  2. Five lines maximum — a digest that scrolls gets collapsed, then muted
  3. Every number carries its comparison — vs yesterday, vs last week, or it isn't worth a line
  4. Name the one decision needed, or say there is none. A brief with no ask is a newsletter.
  5. No @channel, no @here. Ever. A person is mentioned only when the brief names an action that's theirs.

It reads yesterday's brief out of ~/slackbrief/sent/ to compute the delta. That file is what makes this about change instead of state.

A human approves every single post

There's no schedule and no standing permission. It drafts, stops, and shows you. You say post, and it posts that one brief.

Ask it to run this daily on its own and it refuses — an agent with standing permission to post to a team channel is one bad parse from telling everyone the wrong number, and nobody reviews the fifth one.

It won't fill a gap to keep the format

A missing or stale source shows as [no data: source]. Never yesterday's number carried forward, never a silently dropped line — silence reads as "zero" or "fine", and both may be wrong.

Post-only, one channel

The webhook can post and nothing else. No read scopes, no channel listing, no DMs, no user lookup. Anything needing to read Slack is out of scope and it says so.

The webhook URL never appears in a draft, a log, or a report — and the build scan proves it never lands on disk.

What you supply

SLACK_WEBHOOK_URL — an Incoming Webhook for one channel — plus your own Claude Code login. Sources are whatever you drop in ~/slackbrief/sources/: a metrics CSV, a P&L export, a task list.

Where this stops

It drafts and, on your word, posts one brief. It does not schedule, does not post unattended, and cannot read Slack.

It won't state a number it didn't read this run, won't guess a cause (cause unknown), and won't comment on a named colleague's performance — briefs report systems, not people.

Verified on build: the skill, the working tree, the HUMAN_APPROVES_EVERY_POST guard, all five brief rules and the never-invent rule are present on a fresh fork, and no webhook URL exists anywhere in the snapshot. Running it on your own sources is yours to do.

Inside this fork

Forking copies this template into a brand-new, fully isolated microVM on your own subdomain. Here's exactly what lands in it.

  • Claude Code agent

    The upstream harness, pre-installed — same version the creator ran.

  • Starter VM

    1 vCPU · 2 GiB RAM · 10 GiB disk.

  • Creator's /persist data

    The captured persist volume is copied byte-for-byte into your fork.

  • BYOK — your keys, your VM

    Add your model API keys after forking; they live only inside your microVM.

What this agent can do

1 skill

  • slack-brief

    Compose a short daily or weekly Slack brief from your own exports and files, leading with what changed, then post it only when a human says…

What you'll configure after forking

Secrets are scrubbed from shared templates — these are the names you supply in your agent's terminal once it boots.

Environment variables

  • ANTHROPIC_API_KEY

Your turn

Your own Slack Daily Brief, live in about 3 minutes.

Forking copies this Claude Codeagent into a brand-new, fully isolated microVM on your own subdomain — the creator's /persist state and all. Add your own keys after it boots; they never leave the box. Don't love it? Your first jurniti purchase comes with 30 days to get every cent back.

New paid VM · BYOK · 30-day money-back on your first purchase · ~3 min to provision

Starter · fork

$25/ mo

Needs 1 of your own API key