▸ Read atomeve.dev/start.md and set up Standup Bot agent in my project: install it, wire up and verify its credentials, and run it once.Hands you a ready-to-review daily standup digest drawn from your team's Slack channel. It reads a configured channel and drafts:
Every item is grounded in observed messages, and a quiet channel gets a minimal digest rather than padding.
Setup lives in SETUP.md.
Create a Slack app at api.slack.com/apps, add the
channels:history and channels:read bot scopes, install the app to your workspace,
and copy the Bot User OAuth Token (it starts with xoxb-). Then invite the bot to the
channel you want summarized; it can only read channels it is a member of.
To verify: GET https://slack.com/api/auth.test with the token as a Bearer header
should return "ok": true. Free and read-only.
In Slack: open the channel, click its name, then About and copy the Channel ID. Set
SLACK_CHANNEL_ID to it.
To verify token and channel together: GET https://slack.com/api/conversations.history
with the Bearer header and channel=<SLACK_CHANNEL_ID>&limit=1 should return
"ok": true with a message. A not_in_channel error means the bot still needs the
channel invite.
Local runs read .env.local (gitignored). Deployed and scheduled runs read Vercel
project env: vercel env add NAME production takes the value from stdin, so pipe it
in. Both values are single-line, so no special quoting is needed.
The channel to summarize comes from SLACK_CHANNEL_ID. There are no other project
settings, so agent/instructions.md has no project-config block to fill in.
The exact source npx atom-eve add installs — instructions, tools, and skills. Read it here, or copy any file straight into your project.
agent.tsimport { defineAgent } from "eve";
export default defineAgent({
model: process.env.AGENT_MODEL ?? "anthropic/claude-sonnet-4.6",
});