- Claude Code installed and configured
- Python 3.10+
- Node.js 18+ (for MCP servers)
ffmpeg(for video processing)jq(for JSON processing in scripts)envsubst(part ofgettext- for template generation)
git clone https://github.com/abilityai/ruby.git
cd ruby
cp .env.example .envEdit .env and add your API keys. See the API key sections below for where to get each one.
bash init.shThis script:
- Validates your
.envcredentials - Generates
.mcp.jsonfrom the template (substitutes your env vars) - Generates agent-level MCP configs
cp CLAUDE.md.template CLAUDE.mdOpen CLAUDE.md and replace all {{PLACEHOLDER}} values. Required fields:
| Placeholder | Description | Example |
|---|---|---|
{{USER_NAME}} |
Your name | Jane Smith |
{{AGENT_LOCATION}} |
Absolute path to this repo | /home/jane/agents/ruby |
{{YOUTUBE_CHANNEL_NAME}} |
Your channel name | Jane Smith (@janesmith) |
{{YOUTUBE_CHANNEL_ID}} |
Channel ID (starts with UC) | UCxxxxxxxxxxxxxxxxxxxxxxx |
{{CURRENT_SUBSCRIBERS}} |
Current sub count | 5K |
{{SUBSCRIBER_GOAL}} |
Target sub count | 10K |
{{HEYGEN_AVATAR_ID}} |
HeyGen avatar ID | Get from HeyGen dashboard |
{{HEYGEN_VOICE_ID}} |
HeyGen voice ID | Get from HeyGen dashboard |
{{ELEVENLABS_VOICE_ID}} |
ElevenLabs voice ID | Get from ElevenLabs dashboard |
{{METRICOOL_BLOG_ID}} |
Metricool brand ID | Get from Metricool settings |
{{PRIMARY_PRODUCT}} |
Your product name | MyApp |
{{PRIMARY_PRODUCT_URL}} |
Product URL | https://myapp.com |
{{PRIMARY_PRODUCT_TAGLINE}} |
One-line description | The best app for X |
If you use Google Drive for content storage:
- Create a Google Cloud project and enable the Drive API
- Create a service account and download the credentials JSON
- Place it at
.claude/scripts/google/credentials.json - Share your Google Drive folders with the service account email
- Update
.claude/resources/google_drive_folders.mdwith your folder IDs
pip install -r requirements.txtOr use a virtual environment:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtcd youtube/youtube-mcp-server
cp credentials.yml.example credentials.yml
# Edit credentials.yml with your YouTube API key
pip install -r requirements.txt
cd ../..claudeRuby will read CLAUDE.md and be ready to work. Try:
/content-library- See content status/schedule-tracker- Check post schedule/repurpose /path/to/video/folder- Repurpose a video
- Go to developer.twitter.com
- Create a project with Read and Write permissions
- Generate API Key, API Secret, Access Token, and Access Token Secret
- Add to
.envasTWITTER_API_KEY,TWITTER_API_SECRET_KEY,TWITTER_ACCESS_TOKEN,TWITTER_ACCESS_TOKEN_SECRET
- Sign up at heygen.com
- Go to Settings -> API -> Generate API Key
- Note your avatar ID and voice ID from the Avatars page
- Add to
.envasHEYGEN_API_KEY
- Sign up at cloudinary.com
- Go to Dashboard -> copy Cloud Name, API Key, API Secret
- Add to
.envasCLOUDINARY_CLOUD_NAME,CLOUDINARY_API_KEY,CLOUDINARY_API_SECRET
- Go to aistudio.google.com
- Get an API key
- Add to
.envasGEMINI_API_KEY
- Sign up at blotato.com
- Connect your social accounts
- Get API key from Settings
- Note account IDs for each connected platform
- Add to
.envasBLOTATO_API_KEYandBLOTATO_*_IDvalues
- Sign up at metricool.com
- Go to Settings -> API
- Add to
.envasMETRICOOL_USER_TOKENandMETRICOOL_USER_ID
- Sign up at gofile.io
- Go to Account -> API Token
- Create a root folder for Ruby
- Add to
.envasGOFILE_API_TOKEN,GOFILE_ACCOUNT_ID,GOFILE_ROOT_FOLDER
- Go to developers.giphy.com
- Create an app and get API key
- Add to
.envasGIPHY_API_KEY
- Sign up at elevenlabs.io
- Clone your voice or use a preset
- Get API key from Profile -> API Key
- Add to
.envasELEVENLABS_API_KEY
- Sign up at creatomate.com
- Get API key from Account Settings
- Add to
.envasCREATOMATE_API_KEY
If you have a separate knowledge base agent (like the knowledge base agent), set {{KNOWLEDGE_BASE_AGENT_PATH}} in CLAUDE.md to its location. Ruby will call it for research and perspective generation.
Create tone of voice profile documents in your Google Drive Prompts/ folder. Ruby uses these to match your brand voice per platform. Templates:
Twitter_Tone_of_Voice_Profile.mdLinkedIn_Tone_of_Voice_Profile.mdHeyGen_Video_Tone_of_Voice_Profile.mdNewsletter_Tone_of_Voice_Profile.mdLongForm_Tone_of_Voice_Profile.md
Place intro/outro video files in Google Drive Intro_Templates/ folder and update the path mapping in .claude/resources/google_drive_folders.md.