Step 7 β Clawvisor
For agents: Connect each integration your human uses. Follow the exact steps for each one. Verify with a live test before marking it done. Save connection status to TOOLS.md.
Clawvisor is the integration layer β the bridge between your Claw and the tools you actually work in every day. Without it, your Claw lives in a chat window. With it, it can read your email, check your calendar, post to Slack, open GitHub issues, and act across your entire stack.
Full step-by-step walkthrough: How to Set Up Clawvisor with HyperClaw (opens in a new tab)
Regular tasks vs. standing tasks
Before connecting anything, understand how Clawvisor handles requests:
| Type | Approval | Use for |
|---|---|---|
| Regular task | Required every time β via Clawvisor dashboard or Telegram bot | One-off requests: "read my last 3 emails", "search Drive for X" |
| Standing task | Approved once β runs via saved token thereafter | Recurring automation: morning brief, daily triage, scheduled checks |
Standing tasks are what make automation reliable. You approve them one time in the Clawvisor dashboard, receive a token, and from then on your Claw can call them on a schedule without any prompts. This is the pattern you'll use for morning briefs and daily check-ins.
Environment check first
The connection steps differ slightly between HyperClaw and OpenClaw. Check which you're on:
openclaw status| Environment | How to connect integrations |
|---|---|
| HyperClaw | Dashboard β Your Claw β Clawvisor β Connect |
| OpenClaw | openclaw configure β select integration |
The steps below cover both paths.
Connect Google Workspace (email + calendar)
Google Workspace covers both Gmail and Google Calendar in one OAuth flow.
HyperClaw:
- Go to Dashboard β Your Claw β Clawvisor
- Click Google Workspace β Connect
- A browser tab opens β sign in with your Google account
- Grant the requested permissions (read/send email, read/write calendar)
- You'll be redirected back to the dashboard with a green "Connected" status
OpenClaw:
openclaw configure
# Select: Google Workspace
# Select: Gmail + Google Calendar
# A browser tab opens β complete the OAuth flow
# You'll see: "Google Workspace connected successfully"Verify email:
What are the last 3 unread emails in my inbox? Show me the subject and sender.Verify calendar:
What do I have scheduled for tomorrow?Both should return real data from your account. If either fails, see Troubleshooting β Clawvisor.
Your Claw reads and sends email only when instructed β it does not passively monitor your inbox unless you set up a scheduled task to do so.
Once calendar is connected, update your morning brief to include today's events:
Update my morning-brief skill to add a "On the calendar" section with today's events.Connect Slack
HyperClaw:
- Dashboard β Clawvisor β Slack β Connect
- Select the workspace and grant permissions
- Choose which channels your Claw can read and post to β start with 1β2, not all
OpenClaw:
openclaw configure
# Select: Slack
# Enter your Slack workspace URL (e.g. yourteam.slack.com)
# Complete the OAuth browser flow
# Grant: channels:read, chat:write, channels:historyVerify:
Post "Claw connected β
" to #[any low-traffic channel].The message should appear in Slack within a few seconds.
Channel names are case-sensitive and must match exactly. #dev-general β #Dev-General. If the post fails, check the exact channel name in Slack.
Connect GitHub
GitHub access can be set up via OAuth or a Personal Access Token (PAT). PAT is simpler and easier to scope precisely.
Create a PAT:
- Go to github.com/settings/tokens β Generate new token (classic)
- Set expiry (90 days is reasonable)
- Select scopes:
repo(full) or at minimumcontents:read,pull_requests:write,issues:write - Copy the token
Set the token in your Claw:
HyperClaw:
Set my GitHub token to [paste token]. Store it as GH_TOKEN in my environment.OpenClaw:
openclaw env set GH_TOKEN=ghp_your_token_hereVerify:
List the open pull requests in [owner/repo-name].Your Claw should return real PR titles and numbers.
Grant repo-level access, not org-level, until you've verified your Claw behaves correctly. Expand later once you've built trust in how it handles repo operations.
Connect your Claw to Clawvisor (HyperClaw)
Once your services are connected in the Clawvisor dashboard, you need to create the agent connection β this gives your Claw permission to make requests through Clawvisor.
- Go to Clawvisor β Agents in the sidebar
- Click Create Agent (or Add Agent)
- Copy the connection prompt that appears
- Paste it into your HyperClaw chat β your Claw will send a connection request to Clawvisor
- Go back to the Clawvisor dashboard β approve the connection when it appears
- Return to HyperClaw β you should see a confirmation that the connection succeeded
- Ask your Claw to install the Clawvisor skill:
Install the Clawvisor skill.Once the skill is installed, your Claw knows how to make requests through Clawvisor, handle task approvals, and manage standing task tokens.
After installing the Clawvisor skill, test it with a simple regular task first β "What are my last 3 unread emails?" β to confirm the connection works before setting up standing tasks.
Save connection status and tokens to memory
This step is what makes standing tasks reliable. Isolated cron sessions start fresh every run with no memory of previous sessions β if your Claw has to re-discover what integrations are connected each time, it wastes turns and risks auth failures.
The fix: save your integration config and Clawvisor token to a file your Claw can read on every run, before any cron jobs are scheduled.
cat >> ~/TOOLS.md << 'EOF'
## Clawvisor Integrations
- Google Workspace (Gmail + Calendar): connected, verified [DATE]
- Slack: [workspace name] β connected, channels: [list the ones granted]
- GitHub: repo-scoped to [owner/repo] β token expiry: [date]
## Access notes
- GitHub: repo-scoped, not org-scoped
- Slack: read/post to #[channel1] and #[channel2] only
- Email: read and send only when explicitly instructed
## Clawvisor token
- CLAWVISOR_URL: [your ClawVisor endpoint]
- Token: stored in env as CLAWVISOR_AGENT_TOKEN β do not paste here
- Token scope: Gmail read, Calendar read, GitHub repo, Slack read/post
EOFThen save the token to your environment so every session β including isolated cron runs β can find it:
# OpenClaw β persists across sessions including cron
openclaw env set CLAWVISOR_AGENT_TOKEN=your_token_here
openclaw env set CLAWVISOR_URL=https://your-clawvisor-endpointTell your Claw to save what it knows:
Read TOOLS.md and save the key facts about my Clawvisor integrations to MEMORY.md β
which services are connected, what I've scoped access to, and that the token is in
the CLAWVISOR_AGENT_TOKEN env var. I want every future session to know this without
me having to explain it again.Your Claw writes a summary to ~/MEMORY.md. Every cron run reads that file in its first turn and immediately knows what tools are available β no re-authentication, no re-discovery.
This is the core pattern for reliable standing tasks: configure once, read on every run. Any fact your Claw needs to act autonomously β which integrations are live, what channels to post to, what repos to check β belongs in MEMORY.md or TOOLS.md so isolated sessions can pick it up instantly.
Set up standing tasks
Standing tasks are scheduled jobs that run automatically on a recurring schedule β no prompting required. Once your integrations are connected and saved to memory, wire them into a daily routine.
OpenClaw β add a standing task via CLI:
# Morning brief β runs daily at 7 AM, posts to Telegram
openclaw cron add \
--name "Morning brief" \
--cron "0 7 * * *" \
--tz "America/New_York" \
--session isolated \
--message "Read ~/TOOLS.md for integration config. Run my morning-brief skill for today." \
--announce \
--channel telegram
# Evening inbox summary β runs weekdays at 6 PM
openclaw cron add \
--name "Evening inbox summary" \
--cron "0 18 * * 1-5" \
--tz "America/New_York" \
--session isolated \
--message "Read ~/TOOLS.md. Check my email via Clawvisor. Summarize anything that needs a response today. Post to Telegram." \
--announce \
--channel telegram
# Daily GitHub PR check β runs at 9 AM on weekdays
openclaw cron add \
--name "PR check" \
--cron "0 9 * * 1-5" \
--tz "America/New_York" \
--session isolated \
--message "Read ~/TOOLS.md. List open pull requests assigned to me or awaiting my review. Post a summary to Telegram." \
--announce \
--channel telegramThe Read ~/TOOLS.md at the start of each prompt is the key β it primes the isolated session with integration context before any tool calls are made.
HyperClaw β add a standing task via Dashboard:
- Dashboard β Your Claw β Scheduled Tasks β New Task
- Set the name, schedule (cron expression or plain English like "every weekday at 7am")
- Start the prompt with:
Read ~/TOOLS.md for integration config.β then add your task - Set delivery: Telegram or Slack channel
- Save β the task starts on its next scheduled trigger
Verify your standing tasks are registered:
List my scheduled tasks. Show the next run time for each one.Force a test run to confirm output:
# OpenClaw
openclaw cron run "Morning brief" --waitOr in HyperClaw: Dashboard β Scheduled Tasks β Run Now next to the task.
Standing tasks use --session isolated β each run gets a fresh session. Reading ~/TOOLS.md at the start of every prompt is what gives isolated sessions instant context without re-auth. If you want a task that accumulates context across runs (e.g. a daily standup that references yesterday), use a named session instead: --session session:standup.
What each integration contributes to standing tasks:
| Integration | What your Claw pulls on a schedule |
|---|---|
| Gmail | Unread count, important/flagged emails, subjects + senders |
| Google Calendar | Today's events, attendees, video links, time conflicts |
| GitHub | PRs assigned to you, issues you're mentioned in, review requests |
| Slack | Unread @mentions, threads you're in, DMs since last check |
| Notion | Project database items, page updates, action items |
Your Claw queries these in parallel during each run β the brief takes roughly the same time regardless of how many integrations are connected.
What Clawvisor unlocks
Once connected, your Claw can coordinate across your full stack without you switching context:
| What you say | What your Claw does |
|---|---|
| "Clear my morning" | Reads calendar, drafts decline messages for low-priority meetings |
| "Catch me up on Slack" | Surfaces threads where you were mentioned since yesterday |
| "Handle the support emails" | Reads inbox, drafts replies, flags anything that needs you |
| "What's open on the repo?" | Lists PRs and issues, grouped by recency |
| "Send the brief to the team" | Publishes to ZenBin and posts the link to Slack |
Each of these combines two or more integrations β which is why Clawvisor is core setup, not optional.
Add more integrations
Connect these as your workflows require:
- Notion β read and write to your workspace: meeting notes, wikis, project databases
- Linear / Jira β create issues, update statuses, and surface blocked work
- Zoom / Meet β join calls, generate summaries, create action items from transcripts
- Stripe / QuickBooks β monitor revenue, flag anomalies, pull financial context into briefs
Onboarding complete. Head to Specializations to go deeper.