Install
$ agentstack add skill-devinilabs-content-research-os-setup ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Setup — Content Research OS
Conversational onboarding. Interview the user, then write their configuration. Be warm, brief, and clear. Ask one topic at a time and let the user skip anything — never block on a single answer.
Before you start
- Detect fresh setup vs. re-run: read
.env(if present) and the four files in.claude/context/.
- If real values already exist (a key counts as configured only if it's non-blank and not a
your-..-hereplaceholder; an account only if it's not@example), summarize what's already configured and ask whether to update specific parts or start fresh. When updating, change only what the user asks for — never clobber existing API keys or accounts they didn't mention.
- Briefly tell the user what you'll collect: three API keys, their YouTube channel details, and the X / Instagram / TikTok accounts to track.
Group A — API keys
Ask for each key on its own line of conversation. For each, give the one-line "where to get it" link and offer "skip for now" (you'll leave that key blank in .env, and note the matching skill won't run until it's filled).
| Key | Powers | Get it from | |-----|--------|-------------| | APIFY_TOKEN | X, Instagram, TikTok scraping | https://console.apify.com/account/integrations | | TUBELAB_API_KEY | YouTube outlier detection | https://tubelab.net/settings/api | | GEMINI_API_KEY | AI video analysis | https://aistudio.google.com/apikey |
Group B — Your YouTube channel
Channel URL/@handle is required; everything else is optional but improves relevance filtering.
- Channel URL or @handle
- Channel ID (24 chars, starts with
UC…). If the user doesn't know it, try to resolve it from the handle by fetching the channel page and reading theUC…id; if you can't, ask them to paste it from YouTube Studio → Settings → Channel → Advanced, or storeUC_REPLACE_MEand tell them youtube-research needs it. - Channel name
- Primary niche
- Content style (e.g., tutorials, vlogs, reviews)
- Target audience
- Typical video length
- Upload frequency
- Best-performing topics
- Goals
Group C — Accounts to track
For X, then Instagram, then TikTok, ask which accounts to research. Let the user paste a list in any format (commas or new lines, with or without @). Optionally capture a niche and a note per handle. If a platform has none, leave its table empty.
Writing the files
When the interview is done, echo a summary first with API keys masked (show only the first 6 and last 2 characters, e.g. apify_a1b2…z9). Then write the files exactly as specified below.
.env
Write all three keys. Use the user's value, or leave the value blank if skipped — a blank makes the matching script report a clean "not set" error instead of a confusing auth failure. Preserve any extra keys the user already had.
# YouTube Research - TubeLab API
TUBELAB_API_KEY=
# X/Twitter, Instagram, TikTok Research - Apify API
APIFY_TOKEN=
# Video Analysis - Gemini API
GEMINI_API_KEY=
.claude/context/x-accounts.md, instagram-accounts.md, tiktok-accounts.md
Strict format — the fetch scripts parse these. For all three: the header row MUST start with | Handle, the separator MUST start with |--- (no space after the first pipe), and each handle goes in the second column with a leading @. Never write an @example row — replace the placeholder with real handles. If a platform has no accounts, write only the header + separator.
X (.claude/context/x-accounts.md):
# X/Twitter Accounts to Track
Add accounts below to track for research. The fetch script will pull content from these accounts.
| Handle | Niche | Notes |
|--------|-------|-------|
| @handle1 | niche | notes |
Use the same structure for Instagram (title # Instagram Accounts to Track) and TikTok (title # TikTok Accounts to Track).
.claude/context/youtube-channel.md
Keep this exact section structure — youtube-research reads Channel ID and Primary Niche from here:
# YouTube Channel Context
## Channel Information
- **Channel Name:**
- **Channel Handle:**
- **Channel ID:**
## Niche & Positioning
- **Primary Niche:**
- **Content Style:**
- **Target Audience:**
## Content Strategy
- **Typical Video Length:**
- **Upload Frequency:**
- **Best Performing Topics:**
## Goals
- **Growth Targets:**
- **Content Goals:**
Finish
Tell the user:
- What was written, and which keys were left blank (so they know which skills won't run until those are filled).
- If the channel ID is
UC_REPLACE_ME, remind them youtube-research needs it. - Next steps: in Claude Desktop, upload the
.skillbundles (Settings → Capabilities → Skills) if not done, then run/content-plannerfor a full cross-platform pass, or an individual skill like/x-research.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: devinilabs
- Source: devinilabs/content-research-os
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.