Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Optimize Lindy AI costs through credit management, model selection, and agent consolidation. Use when reducing spend, analyzing credit usage patterns, or optimizing budget allocation across agents. Trigger with phrases like "lindy cost", "lindy billing", "reduce lindy spend", "lindy budget", "lindy credits".
.claude/skills/jeremylongshore-lindy-cost-tuning/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 82% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 31% | 0% |
Lindy uses a credit-based pricing model. Every task costs credits based on model size, step count, premium actions, and duration. Cost tuning targets: model right-sizing, agent consolidation, trigger optimization, and credit monitoring.
| Factor | Credits | |--------|---------| | Basic model task (Gemini Flash) | 1-2 | | Mid-tier model (GPT-4o-mini, Claude Haiku) | 2-5 | | Large model task (GPT-4, Claude Sonnet) | 5-10 | | Premium model (Claude Opus) | ~10+ | | Phone call (US/Canada) | ~20/minute | | Phone call (international) | 21-53/minute | | Premium actions (webhooks) | Additional per action | | Minimum per task | 1 credit |
| Plan | Monthly | Credits | Per Extra Seat | |------|---------|---------|----------------| | Free | $0 | 400 | N/A | | Pro | $49.99 | 5,000 | $19.99 | | Business | $299.99 | 30,000 | Included | | Enterprise | Custom | Custom | Custom |
For each active agent, collect:
Create a cost audit table:
| Agent | Tasks/Month | Credits/Task | Model | Monthly Credits | % of Total | |-------|------------|-------------|-------|----------------|-----------| | Support Bot | 500 | 5 | Claude Sonnet | 2,500 | 50% | | Lead Router | 200 | 2 | GPT-4o-mini | 400 | 8% | | Report Gen | 30 | 10 | GPT-4 | 300 | 6% |
The highest-impact optimization. For each agent, ask: > "Does this task actually need GPT-4/Claude, or would Gemini Flash work?"
| Current Setup | Optimized | Savings | |--------------|-----------|---------| | Email classify with Claude Sonnet (5 cr) | Gemini Flash (1 cr) | 80% | | Data extract with GPT-4 (10 cr) | GPT-4o-mini (3 cr) | 70% | | Simple routing with Claude Opus (10 cr) | Gemini Flash (1 cr) | 90% |
Test the downgrade: Run 10 tasks with the smaller model. Compare output quality. Most classification, routing, and extraction tasks work identically on smaller models.
Multiple single-purpose agents cost more than one multi-purpose agent:
Before (5 agents, 5 minimum credits per run):
Agent 1: Classify billing emails
Agent 2: Classify technical emails
Agent 3: Classify general emails
Agent 4: Draft billing responses
Agent 5: Draft technical responsesAfter (1 agent, 1 minimum credit per run):
Support Agent: Classify email → Condition (billing/technical/general)
→ Draft appropriate response → SendCost impact: Reducing from 5 agents to 1 saves minimum-credit overhead and simplifies management.
Credits are consumed every time a trigger fires. Reduce unnecessary triggers:
Email Received:
Before: Trigger on ALL emails (300/day) = 300 tasks
After: Filter: label "support" AND NOT from "noreply@" (40/day) = 40 tasks
Savings: 87% fewer tasksSchedule trigger:
Before: Every 15 minutes (96/day)
After: Every 2 hours (12/day)
Question: Does this agent really need to run every 15 minutes?Slack trigger:
Before: Any message in #general (200/day)
After: Messages containing "@support-bot" (10/day)
Savings: 95% fewer tasksEach action in a workflow costs credits. Eliminate unnecessary steps:
lindy-performance-tuning)KB search costs credits per query. Optimize:
Review agents monthly:
| Issue | Cause | Solution | |-------|-------|----------| | Unexpected credit spike | Trigger filter removed or loosened | Review and restore trigger filters | | Agent consuming 10x normal | Looping agent step | Add exit conditions, check task history | | Credits exhausted mid-month | Under-budgeted or spike | Upgrade plan or pause non-critical agents | | Model downgrade hurts quality | Task needs larger model | Selectively upgrade only that step |
Proceed to lindy-reference-architecture for production architecture patterns.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-09 | fail→pass | 17,842 | 8,316 | -53% | 1 | 1 | 0% | 1,758 | 1,986 | +13% | 0 | 0 | — |
case-01 | fail→fail | 22,161 | 19,230 | -13% | 1 | 1 | 0% | 2,889 | 4,312 | +49% | 0 | 0 | — |
case-02 | fail→fail | 27,857 | 27,041 | -3% | 1 | 1 | 0% | 3,638 | 4,715 | +30% | 0 | 0 | — |
case-03 | fail→pass | 21,874 | 24,964 | +14% | 1 | 1 | 0% | 2,670 | 4,863 | +82% | 0 | 0 | — |
case-04 | fail→pass | 15,691 | 13,088 | -17% | 1 | 1 | 0% | 1,783 | 2,982 | +67% | 0 | 0 | — |
case-14 | fail→pass | 21,480 | 12,447 | -42% | 1 | 1 | 0% | 2,193 | 2,606 | +19% | 0 | 0 | — |
case-05 | fail→pass | 14,659 | 7,716 | -47% | 1 | 1 | 0% | 1,602 | 2,091 | +31% | 0 | 0 | — |
case-06 | fail→pass | 14,440 | 8,069 | -44% | 1 | 1 | 0% | 1,516 | 2,000 | +32% | 0 | 0 | — |
case-07 | fail→pass | 14,786 | 9,863 | -33% | 1 | 1 | 0% | 1,611 | 2,327 | +44% | 0 | 0 | — |
case-08 | pass→pass | 8,370 | 8,059 | -4% | 1 | 1 | 0% | 483 | 2,106 | +336% | 0 | 0 | — |
case-10 | pass→pass | 18,506 | 12,413 | -33% | 1 | 1 | 0% | 1,881 | 2,864 | +52% | 0 | 0 | — |
case-11 | fail→pass | 15,211 | 11,038 | -27% | 1 | 1 | 0% | 1,671 | 2,571 | +54% | 0 | 0 | — |
case-12 | pass→pass | 16,399 | 2,307 | -86% | 1 | 1 | 0% | 1,470 | 1,924 | +31% | 0 | 0 | — |
case-13 | fail→pass | 14,639 | 4,132 | -72% | 1 | 1 | 0% | 1,359 | 2,125 | +56% | 0 | 0 | — |
case-15 | fail→pass | 11,792 | 9,980 | -15% | 1 | 1 | 0% | 2,035 | 2,851 | +40% | 0 | 0 | — |
case-16 | fail→pass | 10,992 | 6,711 | -39% | 1 | 1 | 0% | 1,099 | 1,774 | +61% | 0 | 0 | — |
case-17 | fail→pass | 14,151 | 2,554 | -82% | 1 | 1 | 0% | 1,385 | 1,871 | +35% | 0 | 0 | — |
case-18 | fail→pass | 11,565 | 5,710 | -51% | 1 | 1 | 0% | 1,023 | 2,410 | +136% | 0 | 0 | — |
case-19 | fail→pass | 12,690 | 8,198 | -35% | 1 | 1 | 0% | 1,973 | 2,635 | +34% | 0 | 0 | — |
case-20 | pass→pass | 20,028 | 3,531 | -82% | 1 | 1 | 0% | 1,933 | 2,041 | +6% | 0 | 0 | — |
case-21 | pass→pass | 19,202 | 24,317 | +27% | 1 | 1 | 0% | 3,470 | 4,100 | +18% | 0 | 0 | — |
case-22 | pass→pass | 18,020 | 14,041 | -22% | 1 | 1 | 0% | 2,993 | 4,219 | +41% | 0 | 0 | — |
case-23 | pass→pass | 20,440 | 15,326 | -25% | 1 | 1 | 0% | 2,922 | 4,659 | +59% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +61 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.