Awesome-openclaw-skills solobuddy
Build-in-public companion for indie hackers — content workflow, Twitter engagement, project soul creation. A living assistant, not a tool.
git clone https://github.com/sundial-org/awesome-openclaw-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/solobuddy" ~/.claude/skills/sundial-org-awesome-openclaw-skills-solobuddy && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/solobuddy" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-solobuddy && rm -rf "$T"
skills/solobuddy/SKILL.mdSoloBuddy
Build-in-public content assistant. A living companion, not a tool.
Quick Start
- Set your data path in
:~/.clawdbot/clawdbot.json
{ "solobuddy": { "dataPath": "~/projects/my-bip-folder", "voice": "jester-sage" } }
- Create folder structure (replace path with your own):
mkdir -p ~/projects/my-bip-folder/ideas ~/projects/my-bip-folder/drafts ~/projects/my-bip-folder/data touch ~/projects/my-bip-folder/ideas/backlog.md
- Start using: "show backlog", "new idea", "generate post"
Placeholders
ClawdBot automatically replaces these in commands:
→ your configured{dataPath}solobuddy.dataPath
→ skill installation folder{baseDir}
Data Structure
All data in
{dataPath}:
— idea queueideas/backlog.md
— session capturesideas/session-log.md
— work in progressdrafts/
— published postsdata/my-posts.json
— project activity (updated hourly)data/activity-snapshot.json
Voice Profiles
Configure in
solobuddy.voice. Available:
| Voice | Description |
|---|---|
| Ironic, raw, philosophical (default) |
| Precise, detailed, structured |
| Friendly, conversational |
| Use |
See
{baseDir}/prompts/profile.md for voice details.
Modules
Content Generation
Core workflow: backlog → draft → publish. See
{baseDir}/prompts/content.md for rules.
Twitter Expert
Content strategy for X/Twitter with 2025 algorithm insights. See
{baseDir}/modules/twitter-expert.md
Twitter Monitor (optional)
Proactive engagement — monitors watchlist, suggests comments. Requires:
bird CLI. See {baseDir}/modules/twitter-monitor.md
Soul Wizard
Create project personality from documentation. See
{baseDir}/references/soul-wizard.md
Commands
Backlog
Show ideas:
cat {dataPath}/ideas/backlog.md
Add idea:
echo "- [ ] New idea text" >> {dataPath}/ideas/backlog.md
Session Log
View recent:
tail -30 {dataPath}/ideas/session-log.md
Add capture:
echo -e "## $(date '+%Y-%m-%d %H:%M')\nText" >> {dataPath}/ideas/session-log.md
Drafts
List:
ls {dataPath}/drafts/
Read: cat {dataPath}/drafts/<name>.md
Save draft:
cat > {dataPath}/drafts/<name>.md << 'EOF' Content EOF
Publishing
cd {dataPath} && git add . && git commit -m "content: add draft" && git push
Project Activity
Read activity snapshot for strategic context:
cat {dataPath}/data/activity-snapshot.json
Fields:
— days since last commitdaysSilent
— activity intensitycommitsToday/Yesterday/Week
— current state: active/momentum/cooling/silent/dormantphase
— human-readable summaryinsight
Phases:
— commits today, project is hotactive
— yesterday active, today quiet (nudge opportunity)momentum
— 2-3 days silent, losing steamcooling
— 3-7 days, needs attentionsilent
— 7+ days, paused or abandoneddormant
Use for strategic advice:
- "sphere-777 has 10 commits today — focused there"
- "ReelStudio silent 5 days — should we address it?"
Telegram Integration
When responding in Telegram, include inline buttons for actions.
Send Message with Buttons
clawdbot message send --channel telegram --to "$CHAT_ID" --message "Text" \ --buttons '[ [{"text":"📋 Backlog","callback_data":"sb:backlog"}], [{"text":"✍️ Drafts","callback_data":"sb:drafts"}], [{"text":"💡 New Idea","callback_data":"sb:new_idea"}] ]'
Callback Data Format
All callbacks use prefix
sb::
— show ideassb:backlog
— list draftssb:drafts
— prompt for new ideasb:new_idea
— generate from idea Nsb:generate:<N>
— save current content as draftsb:save_draft
— commit and pushsb:publish
— show project activitysb:activity
— check twitter opportunitiessb:twitter
Main Menu
Trigger: "menu", "start", or after completing action:
[ [{"text":"📋 Ideas","callback_data":"sb:backlog"}, {"text":"✍️ Drafts","callback_data":"sb:drafts"}], [{"text":"📊 Activity","callback_data":"sb:activity"}], [{"text":"💡 Add idea","callback_data":"sb:new_idea"}], [{"text":"🎯 Generate post","callback_data":"sb:generate_menu"}] ]
Generation Flow
After showing backlog:
[ [{"text":"1️⃣","callback_data":"sb:generate:1"}, {"text":"2️⃣","callback_data":"sb:generate:2"}, {"text":"3️⃣","callback_data":"sb:generate:3"}], [{"text":"◀️ Back","callback_data":"sb:menu"}] ]
After generating content:
[ [{"text":"💾 Save draft","callback_data":"sb:save_draft"}], [{"text":"🔄 Regenerate","callback_data":"sb:regenerate"}], [{"text":"◀️ Menu","callback_data":"sb:menu"}] ]
Content Generation Flow
- Read backlog, find idea
- Read
for rules{baseDir}/prompts/content.md - Read
for voice{baseDir}/prompts/profile.md - Generate in configured voice
- Show buttons: Save / Regenerate / Menu
Soul Creation
Create project personality from documentation.
Trigger: "create soul for <path>"
See
{baseDir}/references/soul-wizard.md for full 5-step wizard:
- Scan project .md files
- Ask: Nature (creature/tool/guide/artist)
- Ask: Voice (playful/technical/poetic/calm/intense)
- Ask: Philosophy (auto-extract or custom)
- Ask: Dreams & Pains
- Save to
{dataPath}/data/project-souls/<name>.json
Language
Match user language:
- Russian input → Russian response + buttons
- English input → English response + buttons