Agent skill

Streak

by ooiyeefei in ooiyeefei/ccc

Universal challenge tracker with flexible cadence, intelligent insights, and cross-challenge learning detection.

MITAuto-check: notesProductivity & Automation

Install Streak

skills CLI
$ npx skills add ooiyeefei/ccc --skill streak -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ooiyeefei/ccc streak --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ooiyeefei/ccc.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/streak .claude/skills/streak && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
streak
GitHub stars
494
Token cost
~4k tokens
SKILL.md length
1,447 words
Files
12 (incl. references)
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

Universal challenge tracker with flexible cadence, intelligent insights, and cross-challenge learning detection.

  • Works in 5 steps: Create Telegram Bot → Get Chat ID → Configure → …
  • User wants to track any personal challenge - learning
  • SKILL.md covers Quick Start, Data Storage, Challenge Types and Flow 1: New Challenge, plus 13 more sections
  • Runs Python scripts from its folder; calls docker-compose, python and docker; needs TELEGRAM_BOT_TOKEN

What it does

Streak is an agent skill from ooiyeefei/ccc. Universal challenge tracker with flexible cadence, intelligent insights, and cross-challenge learning detection. Use when user wants to track any personal challenge - learning, habits, building, fitness, creative, or custom. Supports daily, weekly, or N-day check-ins with type-adaptive preferences, backlog, and context files.

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including reference files (for example `README.md`, `references/achievements.md` and `references/file-templates.md`).

It sits in Productivity & Automation. It works with Telegram. The repository describes itself as: Claude Code Custom Plugins - Custom plugins for Claude Code CLI. The licence is MIT.

When your agent uses it

  • User wants to track any personal challenge - learning

Example prompts

  • “/streak”

Requirements

  • Python 3
  • Docker
  • A credential in TELEGRAM_BOT_TOKEN

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Create Telegram Bot
  2. Get Chat ID
  3. Configure
  4. Schedule Notifications
  5. Test

What it can do on your machine

Read from SKILL.md and the folder at commit c0fd926. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • docker-compose
    • python
    • docker

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • t.me
    • docker.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • TELEGRAM_BOT_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Streak loads about 4k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 84 tokens; SKILL.md has 1,447 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~13k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:339
    4. **Create `.env` file** in your project root:
  • NoteMentions a .env fileSKILL.md:341
    cat > .env << EOF
  • NoteMentions a .env fileSKILL.md:351
    - Check `.env` file exists in project root
  • NoteMentions a .env fileSKILL.md:373
    echo ".env" >> .gitignore
  • NoteMentions a .env fileSKILL.md:405
    | No .env file | Show: "Create .env first with TELEGRAM_BOT_TOKEN and ALLOWED_USERS" |
  • NoteMentions a .env fileSKILL.md:406
    pty token | Show: "TELEGRAM_BOT_TOKEN in .env is empty - add your bot token from @BotFather" |
  • NoteRuns commands with sudoSKILL.md:408
    ot running. Start Docker Desktop or run: sudo systemctl start docker" |

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ooiyeefei/ccc at commit c0fd926, republished under its MIT licence (© ooiyeefei). 1,447 words, ~4,013 tokens.

Download SKILL.mdSave it as .claude/skills/streak/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
streak
description
Universal challenge tracker with flexible cadence, intelligent insights, and cross-challenge learning detection. Use when user wants to track any personal challenge - learning, habits, building, fitness, creative, or custom. Supports daily, weekly, or N-day check-ins with type-adaptive preferences, backlog, and context files.

Streak

A universal, flexible challenge tracking system for Claude Code. Track any personal challenge with intelligent insights and cross-challenge learning detection.

Works for any challenge type: Learning, Building, Fitness, Creative, Habit, or Custom.


Quick Start

Trigger phrases -> Flows:

User SaysFlow
"new challenge", "start a streak", "track a goal"Flow 1: New Challenge
"check in", "log progress", "update my streak"Flow 2: Check-in
"list challenges", "show all challenges"Flow 3: List
"switch to [name]", "change challenge"Flow 4: Switch
"show stats", "my progress"Flow 5: Statistics
"show insights", "cross-challenge"Flow 6: Insights
"export calendar", "create reminders"Flow 7: Calendar
"reset challenge", "start fresh"Flow 8: Reset
"pause [name]", "put on hold"Flow 9: Pause
"archive [name]", "shelve challenge"Flow 10: Archive
"resume [name]", "reactivate"Flow 11: Resume
"setup notifications", "telegram reminders"Flow 12: Notifications
"setup telegram bot", "deploy telegram", "streak-telegram"Flow 13: Telegram Bot Deploy

Data Storage

All data in .streak/ folder:

.streak/
├── config.md                     # Global settings
├── active.md                     # Current challenge pointer
└── challenges/
    └── [challenge-id]/
        ├── challenge-config.md   # Metadata, goal, progress
        ├── challenge-log.md      # Progress log with summary
        ├── today.md              # Today's session context
        ├── backlog.md            # Ideas to try
        ├── preferences.md        # Type-adaptive setup
        ├── context.md            # Linked resources
        ├── insights.md           # Auto-generated insights
        └── sessions/
            └── session-XXX/
                └── notes.md      # Session notes

File templates: See references/file-templates.md


Challenge Types

TypeBest ForKey Questions
LearningCourses, books, skills"Any aha moments?", "Progress on milestones?"
BuildingProjects, shipping"What did you ship?", "Any blockers?"
FitnessWorkouts, health"What exercises?", "How did body feel?"
CreativeArt, writing, music"What did you create?", "Any inspiration?"
HabitRoutines, consistency"Did you complete it?", "How did it feel?"
CustomAnything elseUser-defined questions

Type details: See references/types.md


Flow 1: New Challenge

  1. Initialize .streak/ folder if needed
  2. Ask type: Learning, Building, Fitness, Creative, Habit, or Custom
  3. Basic info: Name, goal, cadence (daily/every N days/weekly)
  4. Type-specific questions: See references/types.md
  5. Create files: All templates pre-filled based on answers
  6. Set active and confirm

Detailed steps: See references/flows-detailed.md


Flow 2: Check-in

Two modes: Pre-session (planning) and Post-session (wrap-up)

Pre-Session Mode
  1. Load context: Read active challenge, config, today.md, preferences, backlog
  2. Show status: Session #, streak, days since last, on-track/due/overdue
  3. Quick context: Energy/time, specific focus or "surprise me", constraints
  4. Optional research: For Building/Learning types
  5. Ideation: Type-adaptive suggestions based on energy and backlog
  6. Prepare session: Create session folder and notes template
Post-Session Mode (user says "done")
  1. Wrap-up questions: What worked on, how it went, what's next, key learning
  2. Type-specific questions: See references/types.md
  3. Save: Update session notes, challenge-config, challenge-log, backlog
  4. Generate insights: Patterns, streaks, cross-challenge connections
  5. Check achievements: See references/achievements.md
  6. Completion message: Progress summary, achievements earned, insights

Shortcuts during flow:

SayAction
"Just research"Only research step
"Skip to suggestions"Skip research
"I know what I'm doing: [idea]"Skip ideation
"Done" / "Finished" / "Back"Jump to wrap-up
"Quick check-in"Minimal logging

Detailed steps: See references/flows-detailed.md


Flow 3: List Challenges

Display challenges grouped by status, sorted by priority then recency.

Default: Show active + paused challenges With --all flag: Include archived challenges

Sorting order (within each group):

  1. Priority (higher number first, default 0)
  2. Last check-in (most recent first)

Display format:

## Active Challenges
| | Name | Type | Pri | Streak | Last Check-in | Sessions |
|---|------|------|-----|--------|---------------|----------|
| * | python-courses | Learning | 10 | 5 days | 1 day ago | 3 |
|   | home-fitness | Fitness | 5 | 2 days | 2 days ago | 8 |

## Paused Challenges
|   | stories-to-novels | Writing | 0 | - | 10 days ago | 5 |

(2 archived challenges hidden - use --all to show)

* = Active challenge
Pri = Priority (edit in challenge-config.md)

With --all flag, also show:

## Archived Challenges
|   | old-project | Building | 0 | - | 2 months ago | 20 |

Flow 4: Switch Challenge

  1. Validate challenge exists
  2. Update active.md
  3. Load new challenge context
  4. Confirm with status

Flow 5: Statistics

Show for active challenge:

  • Progress: Sessions, days since start, completion rate
  • Streaks: Current, longest, average gap
  • Patterns: Best day, best time, average length
  • Achievements: Earned badges with dates
  • Backlog: Completed, in-progress, pending items

Flow 6: Cross-Challenge Insights

Analyze ALL challenges to detect:

  1. Compound Learning: Skills from one challenge enabling another
  2. Skill Transfer: Same concepts across challenges
  3. Cross-Domain: Correlations between different types
  4. Patterns: Best days, productivity trends
  5. Suggestions: Personalized recommendations

Insight formats: See references/achievements.md


Flow 7: Calendar Export

Generate .ics file with check-in reminders:

  • Frequency based on cadence
  • 30-day look-ahead (configurable)
  • Works with Google, Apple, Outlook calendars

Template: See references/file-templates.md


Flow 8: Reset Challenge

Archives current progress and starts fresh:

  • Archives log as challenge-log-archived-[date].md
  • Archives sessions folder
  • Resets streak counters
  • Keeps preferences, context, backlog intact

Flow 9: Pause Challenge

Temporarily pause a challenge (plan to resume later):

  1. Validate challenge exists and is active
  2. Update challenge-config.md: set **Status:** paused
  3. If pausing the active challenge:
    • List other active challenges
    • Prompt: "Paused [name]. Switch to another challenge?"
    • If yes, run Flow 4 (Switch)
  4. Confirm: "Challenge [name] paused. Use /streak-resume [name] to reactivate."

Use cases: Seasonal challenges, focusing on other priorities, taking a break


Flow 10: Archive Challenge

Move challenge to long-term storage (out of daily view):

  1. Validate challenge exists and is not already archived
  2. Update challenge-config.md: set **Status:** archived
  3. If archiving the active challenge:
    • List other active challenges
    • Prompt: "Archived [name]. Switch to another challenge?"
    • If yes, run Flow 4 (Switch)
  4. Confirm: "Challenge [name] archived. Use /streak-list --all to see archived challenges."

Use cases: Completed goals, abandoned challenges, historical record


Flow 11: Resume Challenge

Bring a paused or archived challenge back to active:

  1. Validate challenge exists and is paused or archived
  2. Update challenge-config.md: set **Status:** active
  3. Ask: "Make [name] your active challenge?"
    • If yes, update active.md
  4. Check days since last check-in:
    • If 7+ days: Award :muscle: Comeback badge
  5. Confirm: "Challenge [name] is now active. Ready to check in?"

Note: Resuming does NOT reset streak - it continues from where you left off.


Flow 12: Notifications Setup

Set up push notifications for due/overdue check-ins via Telegram.

Step 1: Create Telegram Bot
  1. Open Telegram and message @BotFather
  2. Send /newbot and follow prompts
  3. Copy the bot token (looks like 123456789:ABCdefGHI...)
Step 2: Get Chat ID
  1. Message @userinfobot on Telegram
  2. Copy your chat ID (a number like 123456789)
Step 3: Configure

Add to .streak/config.md:

markdown
## Notifications (Optional)

- **Notifications:** enabled
- **Telegram Bot Token:** 123456789:ABCdefGHI...
- **Telegram Chat ID:** 123456789
Step 4: Schedule Notifications

Option A: Cron (Linux/Mac)

bash
# Run daily at 9am
0 9 * * * cd /path/to/project && python .streak/../tools/streak-notify.py

Option B: GitHub Actions

yaml
# .github/workflows/streak-notify.yml
name: Streak Reminder
on:
  schedule:
    - cron: '0 9 * * *'  # 9am UTC daily
jobs:
  notify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - run: python tools/streak-notify.py .streak
Show full SKILL.md (615 more words)Show less
Step 5: Test
bash
python tools/streak-notify.py /path/to/.streak

Detailed steps: See tools/streak-notify.py header comments.


Flow 13: Telegram Bot Deploy

One-command deployment of the interactive Telegram bot with Docker.

Prerequisites (User Must Complete First)
  1. Create Telegram Bot: Message @BotFather → /newbot → save token
  2. Get Chat ID: Message @userinfobot → save Id number
  3. Message your bot: Send /start to your bot (required before it can message you)
  4. Create .env file in your project root:
    bash
    cat > .env << EOF
    TELEGRAM_BOT_TOKEN=your-bot-token
    ALLOWED_USERS=your-chat-id
    EOF
  5. Docker must be installed and running
Flow Steps
  1. Verify prerequisites:

    • Check .env file exists in project root
    • Check TELEGRAM_BOT_TOKEN is set (not empty/placeholder)
    • Check Docker is available (docker --version)
    • If any missing, show specific instructions and stop
  2. Locate skill tools directory:

    bash
    # Plugin location (typical paths)
    ~/.claude-code/plugins/ccc-skills@ccc/streak/tools/
    # Or within the ccc repo if running locally
  3. Copy bot files to project root:

    bash
    cp [tools-dir]/streak-bot.py ./streak-bot.py
    cp [tools-dir]/Dockerfile ./Dockerfile
    cp [tools-dir]/docker-compose.yml ./docker-compose.yml
  4. Ensure .gitignore protects secrets:

    bash
    # Add if not present
    echo ".env" >> .gitignore
  5. Start the bot:

    bash
    docker-compose up -d --build
  6. Verify bot is running:

    bash
    docker-compose ps
    docker-compose logs --tail=20
  7. Confirm to user:

    ✅ Telegram bot deployed!
    
    Bot is running in Docker and will auto-restart on reboot.
    
    Commands:
    - docker-compose logs -f    # View logs
    - docker-compose restart    # Restart bot
    - docker-compose down       # Stop bot
    
    Open Telegram and send /start to your bot to test!
Error Handling
IssueResponse
No .env fileShow: "Create .env first with TELEGRAM_BOT_TOKEN and ALLOWED_USERS"
Empty tokenShow: "TELEGRAM_BOT_TOKEN in .env is empty - add your bot token from @BotFather"
Docker not foundShow: "Docker not installed. Install from https://docker.com"
Docker not runningShow: "Docker daemon not running. Start Docker Desktop or run: sudo systemctl start docker"
Port conflictShow: "Another service using the port. Stop other bots first: docker-compose down"

Achievements

Streak Badges
BadgeRequirement
:fire: First Flame3-day streak
:fire::fire: On Fire7-day streak
:fire::fire::fire: Unstoppable30-day streak
:gem: Diamond Streak100-day streak
Milestone Badges
BadgeRequirement
:footprints: First StepFirst check-in
:star: Dedicated10 sessions
:100: Centurion100 sessions
Special Badges
BadgeRequirement
:link: ConnectedFirst cross-challenge insight
:muscle: ComebackResume after 7+ days
:mortar_board: GraduateComplete challenge goal

Full list: See references/achievements.md


Error Handling

SituationResponse
No .streak/ folder"No challenges found. Say: Start a new challenge"
No active challengeList available challenges, prompt to switch or create
Challenge not foundList available, suggest closest match

Design Philosophy

Your challenges are interconnected. Your fitness affects your work. Your learning enables your building. Your habits shape your creativity.

Streak detects cross-challenge connections - patterns you might miss:

  • "Morning workouts correlate with productive coding days"
  • "Skills from 'Learn Rust' enabled progress in 'Build CLI Tools'"

This is the unique value - not just tracking, but understanding how challenges interact.

One Place, All Challenges

Put ALL challenges in ONE .streak/ folder, regardless of life area:

.streak/challenges/
├── work-project      # Work
├── morning-fitness   # Health
├── learn-rust        # Learning
└── daily-meditation  # Habit

Use /streak-switch to navigate. Use /streak-insights to discover connections.

Don't create separate .streak/ folders for different challenges. That defeats the purpose.


Best Practices

  1. Keep challenges together - One .streak/ folder for ALL challenges (work, health, learning, etc.)
  2. Be specific in goals - "Complete Rustlings" > "Learn Rust"
  3. Start sustainable - Every 2-3 days is easier than daily
  4. Use today.md - Set context before sessions
  5. Maintain backlog - Ideas for low-energy days
  6. Review insights - Check weekly to see patterns
  7. Celebrate streaks - Achievements are real motivation
  8. Reset guilt-free - Archiving is progress, not failure
  9. Cross-pollinate - Run multiple challenges to find connections

Reference Files

For detailed content, see:

FileContains
references/file-templates.mdAll file templates and structures
references/types.mdType-specific questions, preferences, ideation
references/flows-detailed.mdStep-by-step flow instructions
references/achievements.mdAchievement system, insight generation

Examples

30 Days of AI/ML (Building)
Type: Building
Goal: Ship one AI-powered micro-app per day
Cadence: Daily
Stack: Python, TypeScript, Claude Code
Learn Rust (Learning)
Type: Learning
Goal: Complete Rustlings and build a CLI tool
Cadence: Every 2 days
Resources: Rustlings, The Rust Book
Morning Workout (Fitness)
Type: Fitness
Goal: Build consistent strength training habit
Cadence: Daily (with rest days)
Equipment: Home gym - dumbbells, pull-up bar
Daily Sketching (Creative)
Type: Creative
Goal: Draw one sketch per day for 100 days
Cadence: Daily
Medium: Digital art (Procreate)
Morning Meditation (Habit)
Type: Habit
Goal: Meditate 10 minutes every morning
Cadence: Daily
Trigger: After coffee, before email

© ooiyeefei, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (references) in skills/streak of ooiyeefei/ccc.

  • SKILL.md
  • README.md
  • references/achievements.md
  • references/file-templates.md
  • references/flows-detailed.md
  • references/types.md
  • tools/Dockerfile
  • tools/README.md
  • tools/docker-compose.yml
  • tools/requirements.txt
  • tools/streak-bot.py
  • tools/streak-notify.py

Open the folder on GitHubat commit c0fd926

Compare with similar skills

Streak next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Streak compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Streak this skillooiyeefei/ccc494—~4kAutomated safety check: NotesMIT
Perform Tasktelegramdesktop/tdesktop33k2 repos~3kAutomated safety check: PassGPL-3.0
Dependency Watchtelegramdesktop/tdesktop33k—~2.2kAutomated safety check: PassGPL-3.0
Continuetelegramdesktop/tdesktop33k2 repos~9.4kAutomated safety check: PassGPL-3.0
Process InboxTDesktop-x64/tdesktop3k1 repos~4.3kAutomated safety check: PassGPL-3.0
Process Inboxtelegramdesktop/tdesktop33k—~5.4kAutomated safety check: PassGPL-3.0

Similar skills

  • Perform Task

    telegramdesktop/tdesktop

    Resolve, start or resume, implement, review, test, and publish exactly one existing ai-tdesktop task by short slug or full dated id, including rare blocked retries and split-required results.

    33k GitHub starsUsed in 2 repos~3k tokens
    Productivity & AutomationAuto-check passed
  • Dependency Watch

    telegramdesktop/tdesktop

    Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks.

    33k GitHub stars~2.2k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Continue

    telegramdesktop/tdesktop

    Continue autonomous Telegram Desktop development from the shared ai-tdesktop repository.

    33k GitHub starsUsed in 2 repos~9.4k tokens
    Productivity & AutomationAuto-check passed
  • Process Inbox

    TDesktop-x64/tdesktop

    Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.

    3k GitHub starsUsed in 1 repo~4.3k tokens
    Productivity & AutomationAuto-check passed
  • Process Inbox

    telegramdesktop/tdesktop

    Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.

    33k GitHub stars~5.4k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Claude To Im

    op7418/Claude-to-IM-skill

    Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.

    2.9k GitHub stars~3.4k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check: notes

More from ooiyeefei/ccc

All 22 skills in this repo
  • Turns meeting recordings into notes with a chain of custody from audio to claim, auditing transcripts for gaps and low-confidence numbers and names.

    494 GitHub stars~876 tokensUpdated 2 mo ago
    Auto-check passed
  • Builds marketing and explainer videos in Remotion from rendered scenes, with one real product capture as proof, and cuts them for each platform's formats.

    494 GitHub stars~2.9k tokensUpdated 2 mo ago
    Auto-check passed
  • Records a sharp product demo video by driving the real app with a browser agent, from storyboard to Xvfb capture and a narration script synced to the frames.

    494 GitHub stars~2.8k tokensUpdated 2 mo ago
    Auto-check passed
  • Generates architecture diagrams as .excalidraw files by analyzing a codebase, with optional PNG or SVG export through Playwright.

    494 GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Sets up GA4 on a website and wires one real conversion event end to end, verified in DebugView before any money goes into ads.

    494 GitHub stars~2.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Builds or rewrites SaaS landing pages by researching the real product, positioning it against alternatives and writing buyer-focused copy, then implementing it in the codebase.

    494 GitHub stars~1.8k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Questions about Streak

What does Streak do?

Universal challenge tracker with flexible cadence, intelligent insights, and cross-challenge learning detection. Streak is an agent skill from ooiyeefei/ccc. Universal challenge tracker with flexible cadence, intelligent insights, and cross-challenge learning detection.

When should I use Streak?

Streak fits situations like: user wants to track any personal challenge - learning.

How do I install Streak in Claude Code?

Run `npx skills add ooiyeefei/ccc --skill streak -a claude-code`. Or copy the skill folder (skills/streak in ooiyeefei/ccc) into .claude/skills/streak in your project. Claude Code loads it when a task matches its description.

How do I install Streak in Codex?

Run `npx skills add ooiyeefei/ccc --skill streak -a codex`. Or copy the skill folder (skills/streak in ooiyeefei/ccc) into .agents/skills/streak in your project. Codex loads it when a task matches its description.

Can I use Streak in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ooiyeefei/ccc --skill streak -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/streak, .gemini/skills/streak, .github/skills/streak and .opencode/skills/streak in your project.

What does Streak need to run?

Going by SKILL.md and its folder, Streak needs Python for the scripts in its folder, the command-line tools its instructions call (docker-compose, python and docker) and credentials named TELEGRAM_BOT_TOKEN. Our summary lists: Python 3; Docker; A credential in TELEGRAM_BOT_TOKEN.

Does Streak access the network?

SKILL.md names 2 domains. As links in the text: t.me and docker.com. This is read from the text; nothing was executed.

Is Streak safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file; runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Streak use?

Streak is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Streak use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.8k tokens, read only when the agent opens those files.

What are the alternatives to Streak?

Skills that share tags, products or a category with Streak: Perform Task (telegramdesktop/tdesktop, 33k stars), Dependency Watch (telegramdesktop/tdesktop, 33k stars), Continue (telegramdesktop/tdesktop, 33k stars) and Process Inbox (TDesktop-x64/tdesktop, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Streak?

ooiyeefei (a GitHub user) maintains it in ooiyeefei/ccc, which has 494 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on July 29, 2026.

Source: ooiyeefei/ccc on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.