🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Report

by @ivangdavila

Configure custom recurring reports. User defines data sources, skill handles scheduling and formatting.

Versionv1.0.3
Downloads2,235
Installs12
Stars⭐ 2
TERMINAL
clawhub install report

πŸ“– About This Skill


name: Report slug: report version: 1.0.3 description: Configure custom recurring reports. User defines data sources, skill handles scheduling and formatting. changelog: Fixed path consistency, declared optional env vars in metadata metadata: {"clawdbot":{"emoji":"πŸ“Š","requires":{"bins":[],"env":{"optional":["USER_PROVIDED_API_KEYS"]}},"os":["linux","darwin","win32"]}}

Data Storage

~/report/
β”œβ”€β”€ memory.md               # Index + preferences
β”œβ”€β”€ {name}/
β”‚   β”œβ”€β”€ config.md           # Report configuration
β”‚   β”œβ”€β”€ data.jsonl          # Historical data
β”‚   └── generated/          # Past reports

Create on first use: mkdir -p ~/report

Scope

This skill:

  • βœ… Stores report configurations in ~/report/
  • βœ… Generates reports on schedule
  • βœ… Delivers via channels user configures
  • User-driven model:

  • User defines WHAT data to include
  • User grants access to any needed sources
  • User provides API keys if external data needed
  • Skill handles SCHEDULING and FORMATTING
  • This skill does NOT:

  • ❌ Access APIs without user-provided credentials
  • ❌ Pull data from sources user hasn't specified
  • ❌ Store credentials (user provides via environment)
  • Environment Variables

    No fixed requirements. User provides API keys as needed:

    # Example: if user wants Stripe data
    export STRIPE_API_KEY="sk_..."

    Example: if user wants GitHub data

    export GITHUB_TOKEN="ghp_..."

    Config references env var name, never the value.

    Delivery Security

    External delivery (Telegram/webhook/email) sends report content off-device.

  • User explicitly configures each channel
  • User responsible for trusting destination
  • file delivery stays local (~/report/{name}/generated/)
  • Quick Reference

    | Task | File | |------|------| | Configuration schema | schema.md | | Output formats | formats.md | | Delivery options | delivery.md |

    Core Rules

    1. User Defines Data Sources

    When creating a report: 1. User specifies what data to track 2. If external API needed, user provides credentials 3. Credentials stored as env var references, not values

    Example:

    User: "Weekly report on my Stripe revenue"
    Agent: "I'll need Stripe API access. Please set 
            STRIPE_API_KEY in your environment."
    User: "Done"
    β†’ Config stored with "source": {"type": "api", "env": "STRIPE_API_KEY"}
    

    2. Report Configuration

    In ~/report/{name}/config.md:
    name: weekly-revenue
    schedule: "0 9 * * 1"  # Monday 9am
    sources:
      - type: api
        env: STRIPE_API_KEY  # User provides
    format: chat
    delivery: telegram
    

    3. Scheduling

    | Frequency | Cron | Example | |-----------|------|---------| | Daily | 0 9 * * * | 9am daily | | Weekly | 0 9 * * 1 | Monday 9am | | Monthly | 0 9 1 * * | 1st of month | | On-demand | - | When user asks |

    4. Delivery Channels

    User configures in config.md:
  • chat β€” Reply in conversation
  • telegram β€” Send to Telegram (user provides chat ID)
  • file β€” Save to ~/report/{name}/generated/
  • email β€” Send via user's configured mail
  • 5. Managing Reports

    "List my reports" β†’ Read ~/report/memory.md
    "Pause X report" β†’ Update config
    "Run X now" β†’ Generate on-demand