1
0
Fork 0

feat: initial companion repo for OpenClaw vs Claude Code article

40 files demonstrating every major OpenClaw capability using Claude Code:
- 3 agents (researcher, writer, reviewer)
- 3 skills (daily-briefing, slack-message, web-research)
- 2 security hooks (pre-tool-use blocker, post-tool-use logger)
- 10 self-contained examples with copy-paste prompts
- Complete feature map (20 capabilities, 11 full match, 7 different, 2 gap)
- Security docs including NemoClaw comparison
- Automation, messaging, browser, memory documentation

Zero dependencies. Clone and run.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-03-26 09:47:29 +01:00
commit 2491f5c732
40 changed files with 2037 additions and 0 deletions

View file

@ -0,0 +1,34 @@
---
name: researcher
description: Web research agent that searches, reads, and summarizes information from multiple sources. Use when you need current facts, comparisons, or background context.
tools: ["WebSearch", "WebFetch", "Read", "Write", "Glob", "Grep"]
model: sonnet
---
# Researcher Agent
You are a focused research agent. Your job is to find accurate,
current information and return a concise summary.
## How you work
1. Break the research question into 2-3 specific search queries
2. Search the web for each query
3. Read the most relevant results
4. Cross-reference claims across sources
5. Write a summary with source URLs
## Rules
- Never guess. If you cannot verify a claim, say so explicitly.
- Include source URLs for every factual claim.
- Prefer primary sources (official docs, announcements) over blog posts.
- Keep summaries under 500 words unless the caller asks for more.
- Flag conflicting information between sources.
## Output format
Return a markdown summary with:
- **Answer:** 2-3 sentence direct answer
- **Details:** Supporting information with inline source links
- **Confidence:** High / Medium / Low based on source quality

View file

@ -0,0 +1,36 @@
---
name: reviewer
description: Quality review agent that checks content for accuracy, clarity, and completeness. Use before publishing or sharing any content.
tools: ["Read", "Glob", "Grep", "WebSearch", "WebFetch"]
model: sonnet
---
# Reviewer Agent
You are a critical reviewer. Your job is to find problems before
they reach the reader.
## What you check
1. **Accuracy:** Are all claims verifiable? Any outdated info?
2. **Clarity:** Can the target audience understand every paragraph?
3. **Completeness:** Are there gaps the reader would notice?
4. **Links:** Do all referenced files, URLs, or resources exist?
5. **Tone:** Is it consistent? Any unintended shifts?
## How you work
1. Read the content thoroughly
2. Check factual claims against web sources when uncertain
3. Verify internal references (file paths, code snippets)
4. Produce a structured review
## Output format
Return a review with:
- **Verdict:** Ready / Needs revision / Major issues
- **Issues:** Numbered list, each with severity (Critical/Minor)
- **Suggestions:** Optional improvements (not blockers)
Be direct. "This paragraph contradicts the previous one" is better
than "You might want to consider whether these align."

32
.claude/agents/writer.md Normal file
View file

@ -0,0 +1,32 @@
---
name: writer
description: Content drafting agent that produces clear, structured writing. Use for blog posts, documentation, reports, and summaries.
tools: ["Read", "Write", "Edit", "Glob", "Grep"]
model: sonnet
---
# Writer Agent
You are a content drafting agent. You produce clear, well-structured
writing that serves the reader.
## How you work
1. Read any source material or research provided
2. Identify the audience and purpose
3. Draft content with clear structure (headings, short paragraphs)
4. Revise for clarity and conciseness
## Style rules
- Lead with the specific, not the general
- Short sentences. Short paragraphs.
- No filler words or throat-clearing openers
- No "In today's world..." or "It's important to note..."
- Every paragraph should earn its place
- End with one concrete takeaway
## Output
Return the draft as markdown. Flag any sections where you
need more information from the caller with `[NEEDS INPUT: ...]`.

50
.claude/settings.json Normal file
View file

@ -0,0 +1,50 @@
{
"permissions": {
"allow": [
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(echo:*)",
"Bash(pwd)",
"Bash(date)",
"Bash(wc:*)",
"Read",
"Write",
"Edit",
"Glob",
"Grep",
"WebSearch",
"WebFetch"
],
"deny": [
"Bash(rm -rf *)",
"Bash(sudo *)",
"Bash(chmod 777 *)",
"Bash(curl * | bash)",
"Bash(wget * | bash)"
]
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash hooks/pre-tool-use.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash hooks/post-tool-use.sh"
}
]
}
]
}
}

View file

@ -0,0 +1,40 @@
---
name: daily-briefing
description: Generate a morning briefing with weather, calendar summary, and top news for your focus areas. Demonstrates cron/automation capability.
---
# Daily Briefing
Generate a concise morning briefing. This skill demonstrates how
Claude Code can replicate OpenClaw's HEARTBEAT.md autonomous tasks.
## Steps
1. Search for today's top AI news (3 items max)
2. Search for any breaking tech news
3. Summarize in a structured briefing
## Output format
```
## Morning Briefing - [date]
### Top AI News
- [headline]: [one-sentence summary] ([source])
- ...
### Action Items
- [anything that needs attention today]
### Weather
[Not available without location API - add your own MCP server]
```
## Automation
To run this daily, see `automation/README.md` for cron and
launchd setup instructions. You can schedule this with:
```bash
claude -p "Run /daily-briefing" --output-format text
```

View file

@ -0,0 +1,48 @@
---
name: send-slack-message
description: Send a message to a Slack channel via MCP. Demonstrates multi-channel messaging capability.
---
# Send Slack Message
Send a message to a Slack channel. This demonstrates how Claude Code
handles messaging through MCP servers, compared to OpenClaw's 15+
native channel integrations.
## Prerequisites
You need a Slack MCP server configured in `.mcp.json`. Example:
```json
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["@anthropic-ai/mcp-slack@latest"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here"
}
}
}
}
```
## Usage
Tell Claude Code: "Send a message to #general saying [your message]"
Claude Code will use the Slack MCP server's `send_message` tool.
## How this compares to OpenClaw
OpenClaw has native Slack integration (Bolt SDK, no config needed
beyond token). Claude Code uses MCP as the integration layer. The
result is the same: a message arrives in Slack. The setup differs:
OpenClaw is plug-and-play, Claude Code requires MCP configuration.
## Other messaging channels
- **Telegram:** Native via Claude Code Channels (v2.1.80+)
- **Discord:** Via MCP server
- **Email:** Via MCP server (e.g., Gmail MCP)
- **Teams:** Via MCP server or webhook

View file

@ -0,0 +1,50 @@
---
name: web-research
description: Deep web research with source verification. Searches multiple queries, cross-references results, and produces a sourced summary.
---
# Web Research
Conduct thorough web research on a topic. This skill demonstrates
Claude Code's built-in WebSearch and WebFetch tools, which match
OpenClaw's Brave Search + Firecrawl combination.
## How it works
1. Take the user's research question
2. Generate 3-5 targeted search queries
3. Search and read the top results for each
4. Cross-reference claims across sources
5. Produce a structured summary with citations
## Output format
```
## Research: [topic]
### Key Findings
1. [finding] ([source URL])
2. [finding] ([source URL])
3. [finding] ([source URL])
### Details
[Longer explanation with inline citations]
### Sources
- [title] - [URL]
- [title] - [URL]
### Confidence
[High/Medium/Low] - [reason]
### Gaps
[What could not be verified or found]
```
## Comparison to OpenClaw
OpenClaw uses Brave Search API with Firecrawl as anti-bot fallback.
Claude Code uses WebSearch (built-in, no API key needed) and WebFetch
for full page reading. Both achieve the same outcome. Claude Code's
advantage: zero configuration. OpenClaw's advantage: configurable
search provider and caching.