subscription-slayer
Tracks subscriptions, calculates monthly and annual costs, detects likely-unused services based on last-used patterns, and generates ready-to-send cancellation email templates. Helps users stop wasting money on forgotten subscriptions. Skill: subscription-slayer Owner: voronindenis5 Summary: Tracks subscriptions, calculates monthly and annual costs, detects likely-unused services based on last-used patterns, and generates ready-to-send cancellation email templates. Helps users stop wasting money on forgotten subscriptions. Tags: latest:0.1.2 Version history: v0.1.2 | 2026-08-14T06:19:28.441Z | auto - Removed the file skill-card.md. - No other chang
Rank
62
Safety
84
Downloads
2.6k
Updated
Oct 9, 2026
Version
0.1.2
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 2.6K downloadsadoption · observed Oct 9, 2026
- Latest release
- 0.1.2release · observed Aug 14, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17b6amkd3wzqgg640v03a9r1n83gxs1:subscription-slayer- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-subscription-slayer/snapshot"
Documentation
CLAWHUB
60,876 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: subscription-slayer
description: >
Tracks subscriptions, calculates monthly and annual costs, detects likely-unused
services based on last-used patterns, and generates ready-to-send cancellation
email templates. Helps users stop wasting money on forgotten subscriptions.
version: 1.0.0
author: Denis Voronin
license: MIT
tags:
- subscriptions
- finance
- budgeting
- money-saving
- cancellation
---
# Subscription Slayer
Find and slay the subscriptions draining your wallet every month.
## When to use
- The user wants to audit their recurring subscriptions.
- The user wants to know how much they spend monthly/yearly on subscriptions.
- The user suspects they're paying for services they don't use.
- The user wants to cancel a subscription and needs a cancellation email.
## How it works
1. Receive a list of subscriptions as JSON (see format below).
2. Run `scripts/subscription_tracker.py analyze subs.json` to get:
- Monthly and annual cost totals
- Each subscription ranked by **waste probability** (how likely it's unused)
- Ready-to-send cancellation email templates for high-waste subscriptions
3. The agent presents the analysis and offers to generate/send cancellation emails.
## Subscription JSON Format
```json
[
{
"name": "Netflix",
"cost": 15.49,
"billing_cycle": "monthly",
"category": "entertainment",
"last_used": "2024-01-15",
"start_date": "2022-03-01",
"auto_renew": true,
"cancel_url": "https://www.netflix.com/cancel"
},
{
"name": "Adobe Creative Cloud",
"cost": 54.99,
"billing_cycle": "monthly",
"category": "software",
"last_used": "2023-06-01",
"start_date": "2021-01-15",
"auto_renew": true,
"cancel_url": "https://account.adobe.com"
}
]
```
### Fields
| Field | Required | Description |
|-------|----------|-------------|
| `name` | ✅ | Subscription name |
| `cost` | ✅ | Cost per billing cycle |
| `billing_cycle` | ✅ | "monthly", "yearly", "weekly", "quarterly" |
| `category` | ❌ | Entertainment, software, news, fitness, etc. |
| `last_used` | ❌ | ISO date of last use (for waste detection) |
| `start_date` | ❌ | When the subscription started |
| `auto_renew` | ❌ | Whether it auto-renews (default true) |
| `cancel_url` | ❌ | URL to manage/cancel the subscription |
| `notes` | ❌ | Free text notes |
## Usage
```bash
# Analyze subscriptions
python3 scripts/subscription_tracker.py analyze subs.json
# JSON output
python3 scripts/subscription_tracker.py analyze subs.json --json
# Generate cancellation emails for high-waste subscriptions
python3 scripts/subscription_tracker.py cancel subs.json --name "Netflix"
# Generate cancellation emails for all high-waste subscriptions
python3 scripts/subscription_tracker.py cancel subs.json --threshold 70
# Show only subscriptions above a waste threshold
python3 scripts/subscription_tracker.py analyze subs.json --threshold 50
# Run demo with sample data
python3 scripts/subscription_tracker.py dREADME.md
# Subscription Slayer ⚔️
Find and slay the subscriptions draining your wallet every month.
[](https://opensource.org/licenses/MIT)
## The Problem
People forget about subscriptions and waste money on unused services. The average person has 10+ subscriptions and underestimates their total spend by 2.5×. Auto-renewing charges silently drain accounts month after month.
## The Solution
**Subscription Slayer** analyzes your subscriptions to:
1. **Calculate** exact monthly and annual costs
2. **Detect** which subscriptions are likely unused (waste detection scoring)
3. **Rank** everything by waste probability
4. **Generate** ready-to-send cancellation email templates
## Quick Start
```bash
# Analyze your subscriptions
python3 scripts/subscription_tracker.py analyze my_subs.json
# Get JSON output
python3 scripts/subscription_tracker.py analyze my_subs.json --json
# Generate a cancellation email for a specific subscription
python3 scripts/subscription_tracker.py cancel my_subs.json --name "Netflix"
# Generate cancellation emails for all high-waste subscriptions
python3 scripts/subscription_tracker.py cancel my_subs.json --threshold 70
# Run the demo with sample data
python3 scripts/subscription_tracker.py demo
```
## Subscription JSON Format
Create a JSON file with your subscriptions:
```json
[
{
"name": "Netflix",
"cost": 15.49,
"billing_cycle": "monthly",
"category": "streaming",
"last_used": "2024-01-15",
"start_date": "2022-03-01",
"auto_renew": true,
"cancel_url": "https://www.netflix.com/cancelplan"
}
]
```
| Field | Required | Description |
|-------|----------|-------------|
| `name` | ✅ | Subscription name |
| `cost` | ✅ | Cost per billing cycle |
| `billing_cycle` | ✅ | monthly, yearly, weekly, quarterly |
| `category` | ❌ | streaming, software, fitness, etc. |
| `last_used` | ❌ | ISO date of last use |
| `start_date` | ❌ | When subscription started |
| `auto_renew` | ❌ | Auto-renew status (default true) |
| `cancel_url` | ❌ | URL to manage subscription |
## Waste Detection
The waste score (0–100) uses 5 factors:
| Factor | Weight | What it measures |
|--------|--------|------------------|
| Days since last use | 40% | How long since you used the service |
| Cost vs. usage | 25% | Expensive + unused = high waste |
| Subscription age | 15% | Old subs are easily forgotten |
| Auto-renew status | 10% | Silent renewals drain money |
| Category tendency | 10% | Some categories are more forgettable |
**Score interpretation:**
- 🔴 **80–100**: Critical — cancel now
- 🟠 **60–79**: High — likely unused
- 🟡 **40–59**: Moderate — review
- 🟢 **0–39**: Low — probably in use
See `references/waste_detection.md` for the full methodology.
## Example Output
```
============================================================
⚔️ SUBSCRIPTION SLAYER
============================================================
Total monthly cost: $276._meta.json
{
"ownerId": "kn75wwn4x6djaf28jbykeamazd81gtdp",
"slug": "subscription-slayer",
"version": "0.1.2",
"publishedAt": 1786688368441
}references/cancellation_template.md
# Cancellation Email Template Reference
Subscription Slayer generates ready-to-send cancellation emails. This document explains the template structure and how to customise it.
## Standard Template
```
To: support@{company}.com
Subject: Cancellation Request — {name} Subscription (Account #[YOUR ACCOUNT ID])
Dear {Company} Customer Support,
I am writing to formally request the cancellation of my {name} subscription,
effective immediately.
Account details:
- Service: {name}
- Account email: [YOUR EMAIL]
- Account/Member ID: [YOUR ACCOUNT ID]
- Name on account: [YOUR NAME]
Please process this cancellation and confirm via email that:
1. My subscription has been cancelled and will not be renewed.
2. No further charges will be made to my payment method.
3. Any applicable pro-rated refund for the unused portion of my billing
cycle is processed.
If you require any additional information to process this request, please
contact me at [YOUR EMAIL].
I expect written confirmation of the cancellation within 5 business days,
as required by consumer protection regulations.
Sincerely,
[YOUR NAME]
[YOUR EMAIL]
```
## Placeholders to Replace
Before sending, replace these placeholders:
| Placeholder | Replace with |
|-------------|-------------|
| `[YOUR EMAIL]` | Your account email address |
| `[YOUR ACCOUNT ID]` | Your subscription/account/member ID |
| `[YOUR NAME]` | Your full name as it appears on the account |
## Email Address Inference
The script infers a support email from the subscription name:
- Company name is extracted as the first word
- Domain is generated as `{company.lower()}.com`
- Email is `support@{domain}`
This is a best guess. **Always verify the correct email address** by checking:
1. The company's website "Contact Us" page
2. Your account settings or billing page
3. Previous correspondence from the company
## Customising Templates
### Adding company-specific details
Some companies have specific cancellation requirements. You can modify the template in `scripts/subscription_tracker.py`:
```python
EMAIL_TEMPLATE = """To: {email}
Subject: {subject}
Dear {company} Cancelations Team,
...
"""
```
### Different tones
For a more assertive tone:
```
I am exercising my right to cancel under the terms of service.
Please confirm within 3 business days.
```
For a friendlier tone:
```
I've enjoyed using {name} but need to cancel for budget reasons.
Could you please process this at your earliest convenience?
```
## Legal Considerations
The template references "consumer protection regulations" which generally require companies to:
- Process cancellations within a reasonable timeframe (typically 3–5 business days)
- Provide written confirmation
- Not charge for services after cancellation date
- Process any applicable refunds
Specific regulations vary by jurisdiction:
- **US**: FTC's "Click to Cancel" rule (effective 2024) requires easy cancellation
- **EU**: Consumer Rights Directive mandates 14-day cancellation rights
- *references/waste_detection.md
# Waste Detection Methodology
Subscription Slayer uses a multi-factor scoring system to estimate the probability that a subscription is wasting your money. Each subscription receives a **waste score from 0–100**.
## Scoring Factors
### 1. Days Since Last Use — 40 points max (40%)
The strongest single signal. If you haven't used a service recently, you're likely paying for nothing.
| Days Unused | Points |
|-------------|--------|
| 180+ (6 months) | 40 |
| 90–179 (3–6 months) | 35 |
| 60–89 (2–3 months) | 28 |
| 30–59 (1–2 months) | 20 |
| 14–29 (2 weeks–1 month) | 10 |
| 7–13 (1–2 weeks) | 5 |
| 0–6 (this week) | 0 |
| No data available | 5 (uncertainty penalty) |
### 2. Cost vs. Usage Efficiency — 25 points max (25%)
Combines cost and usage recency. An expensive service you haven't used in a month is a bigger waste than a cheap one.
| Condition | Points |
|-----------|--------|
| 30+ days unused AND monthly cost ≥ $10 | 25 |
| 30+ days unused AND monthly cost ≥ $5 | 18 |
| 30+ days unused (any cost) | 10 |
| 14+ days unused AND monthly cost ≥ $15 | 15 |
| No usage data AND monthly cost ≥ $20 | 15 |
| No usage data AND monthly cost ≥ $10 | 8 |
### 3. Subscription Age — 15 points max (15%)
Old subscriptions are more likely to be forgotten. The "set it and forget it" problem.
| Age | Points |
|-----|--------|
| 730+ days (2+ years) | 15 |
| 365–729 days (1–2 years) | 10 |
| 180–364 days (6–12 months) | 5 |
| < 180 days | 0 |
### 4. Auto-Renew Status — 10 points max (10%)
Auto-renewing subscriptions silently drain money without any action required from you.
| Auto-Renew | Points |
|------------|--------|
| Yes | 10 |
| No | 0 |
### 5. Category Tendency — 10 points max (10%)
Some categories are statistically more likely to be forgotten or underutilised.
**High-waste categories (10 pts):** news, magazine, newsletter, cloud storage, backup, app, software
**Medium-waste categories (5 pts):** music, entertainment, streaming, video, fitness, gym, health, productivity, education
**Low-waste categories (0 pts):** utilities, insurance, phone, internet
## Score Interpretation
| Score | Label | Meaning |
|-------|-------|---------|
| 80–100 | 🔴 Critical | Almost certainly wasting money. Cancel immediately. |
| 60–79 | 🟠 High | Likely unused. Strong cancellation candidate. |
| 40–59 | 🟡 Moderate | Possibly underutilised. Review usage. |
| 0–39 | 🟢 Low | Probably in active use. Keep monitoring. |
## How to Improve Accuracy
### Provide `last_used` dates
The waste detection is dramatically more accurate when you provide the date you last used each service. Even approximate dates help ("about 3 months ago" → estimate the date).
### Use accurate categories
The category field affects scoring. Be specific: "streaming" is better than "entertainment", "cloud storage" is better than "software".
### Include `start_date`
Subscription age is a meaningful factor. If you don't know the exact start date, estimate.
## Limitations
- **No bank inteAionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/voronindenis5/skills/subscription-slayer",
"sourceUrl": "https://clawhub.ai/voronindenis5/skills/subscription-slayer",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T12:42:10.847Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-subscription-slayer/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-subscription-slayer/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T12:42:10.847Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2.6K downloads",
"href": "https://clawhub.ai/voronindenis5/subscription-slayer",
"sourceUrl": "https://clawhub.ai/voronindenis5/subscription-slayer",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T12:42:10.847Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.1.2",
"href": "https://clawhub.ai/voronindenis5/subscription-slayer",
"sourceUrl": "https://clawhub.ai/voronindenis5/subscription-slayer",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-14T06:19:28.441Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-subscription-slayer/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-subscription-slayer/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.1.2",
"description": "- Removed the file skill-card.md. - No other changes made to the skill’s functionality or documentation.",
"href": "https://clawhub.ai/voronindenis5/subscription-slayer",
"sourceUrl": "https://clawhub.ai/voronindenis5/subscription-slayer",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-14T06:19:28.441Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
