Skillshub evernote-cost-tuning
git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jeremylongshore/claude-code-plugins-plus-skills/evernote-cost-tuning" ~/.claude/skills/comeonoliver-skillshub-evernote-cost-tuning && rm -rf "$T"
skills/jeremylongshore/claude-code-plugins-plus-skills/evernote-cost-tuning/SKILL.mdEvernote Cost Tuning
Overview
Optimize resource usage and manage costs in Evernote integrations, focusing on monthly upload quotas, storage efficiency, image compression, and account limit monitoring.
Prerequisites
- Understanding of Evernote account tiers (Basic: 60MB/mo, Premium: 10GB/mo, Business: 20GB/mo)
- Access to user quota information via
user.accounting - Monitoring infrastructure for alerts
Instructions
Step 1: Quota Monitoring
Query
userStore.getUser() to access user.accounting which contains uploadLimit, uploaded, and uploadLimitEnd. Calculate remaining quota and percentage used.
async function getQuotaStatus(userStore) { const user = await userStore.getUser(); const { uploadLimit, uploaded, uploadLimitEnd } = user.accounting; return { totalMB: Math.round(uploadLimit / 1024 / 1024), usedMB: Math.round(uploaded / 1024 / 1024), remainingMB: Math.round((uploadLimit - uploaded) / 1024 / 1024), percentUsed: Math.round((uploaded / uploadLimit) * 100), resetsAt: new Date(uploadLimitEnd) }; }
Step 2: Resource Optimization
Compress images before attaching to notes. Resize large images to a maximum dimension (e.g., 1920px). Convert PNG screenshots to JPEG for smaller file sizes. Skip attaching files that exceed the single-note size limit (25MB for Basic, 200MB for Premium).
function estimateNoteSize(content, resources = []) { const contentBytes = Buffer.byteLength(content, 'utf8'); const resourceBytes = resources.reduce((sum, r) => sum + r.data.size, 0); return contentBytes + resourceBytes; } function canUpload(noteSize, remainingQuota) { return noteSize < remainingQuota; }
Step 3: Efficient Note Creation
Check quota before creating notes with large attachments. Use
findNotesMetadata() for read operations (zero upload cost). Batch small notes into single notes where appropriate.
Step 4: Storage Cleanup
Find large notes consuming quota. List notes sorted by content length to identify optimization candidates. Remove unused resources and delete notes in trash to reclaim space.
Step 5: Quota Alerts
Send alerts when upload usage exceeds thresholds (e.g., 75%, 90%, 95%). Log quota status after each upload operation for trend analysis.
For the complete quota monitor, image optimizer, cleanup utilities, and alert system, see Implementation Guide.
Account Limits Reference
| Limit | Basic | Premium | Business |
|---|---|---|---|
| Monthly upload | 60 MB | 10 GB | 20 GB/user |
| Single note size | 25 MB | 200 MB | 200 MB |
| Notebooks | 250 | 250 | 10,000 |
| Tags | 100,000 | 100,000 | 100,000 |
| Notes | 100,000 | 100,000 | 500,000 |
Output
- Quota monitoring service with percentage tracking
- Image compression pipeline for resource optimization
- Pre-upload quota check with size estimation
- Storage cleanup utilities for large notes
- Threshold-based alert system for quota usage
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Monthly upload limit exceeded | Wait for quota reset at |
| Too many notebooks or tags | Delete unused notebooks, merge duplicate tags |
| Empty note after optimization | Ensure note still has content after compression |
| Attachment hash mismatch | Recompute MD5 hash after image compression |
Resources
Next Steps
For architecture patterns, see
evernote-reference-architecture.
Examples
Quota dashboard: Build a dashboard showing current upload usage (MB used / total), days until reset, largest notes by size, and projected usage based on recent trends.
Image pipeline: Before attaching images, resize to max 1920px width, convert PNG to JPEG at 80% quality, check resulting size against remaining quota, and skip if insufficient.