evernote-local-dev-loop
Configure your local workflow, project structure, and sandbox environment for Evernote development.
Install
mkdir -p .claude/skills/evernote-local-dev-loop && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7589" && unzip -o skill.zip -d .claude/skills/evernote-local-dev-loop && rm skill.zipInstalls to .claude/skills/evernote-local-dev-loop
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Set up efficient local development workflow for Evernote integrations.Key capabilities
- →Configure sandbox development environments
- →Implement client factory for token switching
- →Build ENML utility helpers
- →Set up Express servers for OAuth testing
- →Verify SDK connectivity
How it works
It establishes a project structure, provides a client factory for environment switching, and includes utilities for OAuth and ENML testing.
Inputs & outputs
When to use evernote-local-dev-loop
- →Initialize project folder structure
- →Configure Evernote sandbox environment
- →Setup local OAuth testing server
- →Create development test scripts
About this skill
Evernote Local Dev Loop
Overview
Configure an efficient local development environment for Evernote API integration with sandbox testing, hot reload, ENML helpers, and a local Express server for OAuth testing.
Prerequisites
- Completed
evernote-install-authsetup - Node.js 18+ or Python 3.10+
- Evernote sandbox account at
Instructions
Step 1: Project Structure
Organize your project with clear separation of concerns:
evernote-app/
src/
services/ # NoteService, SearchService, etc.
utils/ # ENML helpers, query builder
middleware/ # Auth, rate limiting
test/ # Unit and integration tests
scripts/ # Dev utilities (test-connection, seed-data)
.env.development # Sandbox credentials
.env.production # Production credentials (gitignored)
Step 2: Environment Configuration
Create .env.development with sandbox credentials. Use a Developer Token for quick iteration (skip OAuth during development). Add .env* to .gitignore.
# .env.development
EVERNOTE_CONSUMER_KEY=your-sandbox-key
EVERNOTE_CONSUMER_SECRET=your-sandbox-secret
EVERNOTE_DEV_TOKEN=your-developer-token
EVERNOTE_SANDBOX=true
NODE_ENV=development
PORT=3000
Step 3: Evernote Client Wrapper
Create a client factory that switches between Developer Token (for scripts and tests) and OAuth (for the web app) based on environment configuration.
function createClient() {
if (process.env.EVERNOTE_DEV_TOKEN) {
return new Evernote.Client({
token: process.env.EVERNOTE_DEV_TOKEN,
sandbox: true
});
}
return new Evernote.Client({
consumerKey: process.env.EVERNOTE_CONSUMER_KEY,
consumerSecret: process.env.EVERNOTE_CONSUMER_SECRET,
sandbox: process.env.EVERNOTE_SANDBOX === 'true'
});
}
Step 4: ENML Utility Helpers
Build helper functions: wrapInENML(html), textToENML(text), htmlToENML(html) (strip forbidden elements), and validateENML(content). These prevent BAD_DATA_FORMAT errors during development.
Step 5: Express Server with OAuth
Set up a local Express server with session management for OAuth flow testing. Include routes for /auth/start (get request token), /auth/callback (exchange for access token), and /dashboard (authenticated operations).
Step 6: Quick Test Script
Create a scripts/test-connection.js that verifies SDK setup by calling userStore.getUser() and noteStore.listNotebooks(). Run with node scripts/test-connection.js.
For the full project setup, Express server, ENML utilities, and test scripts, see Implementation Guide.
Output
- Project structure with services, utils, and middleware directories
- Environment configuration for sandbox and production
- Client factory with Developer Token and OAuth support
- ENML utility library (wrap, convert, validate)
- Express server with OAuth flow for local testing
- Connection test script for quick verification
Error Handling
| Error | Cause | Solution |
|---|---|---|
EVERNOTE_DEV_TOKEN not set | Missing dev token | Get from sandbox.evernote.com/api/DeveloperToken.action |
Invalid consumer key | Wrong sandbox vs production key | Verify EVERNOTE_SANDBOX matches your key type |
Session undefined | Missing express-session middleware | Install and configure express-session |
| Port already in use | Another process on port 3000 | Change PORT in .env or kill the process |
Resources
- Sandbox Environment
- Developer Tokens
- OAuth Guide
Next Steps
Proceed to evernote-sdk-patterns for advanced SDK usage patterns.
Examples
Quick sandbox test: Set EVERNOTE_DEV_TOKEN, run node scripts/test-connection.js to verify authentication, then create a test note using the Developer Token shortcut.
Full OAuth loop: Start the Express server, navigate to http://localhost:3000/auth/start, complete the Evernote authorization, and verify the access token is stored in the session.
Prerequisites
Limitations
- →Requires sandbox account
- →OAuth testing requires local server setup
How it compares
It provides a standardized local development loop including sandbox configuration, unlike manual setup.
Compared to similar skills
evernote-local-dev-loop side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| evernote-local-dev-loop (this skill) | 1 | 27d | Review | Intermediate |
| dependency-upgrade | 26 | 5mo | Review | Intermediate |
| chrome-devtools | 41 | 7mo | Review | Intermediate |
| playwright-browser-automation | 29 | 7mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
dependency-upgrade
wshobson
Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.
chrome-devtools
mrgoonie
Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.
playwright-browser-automation
lackeyjb
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.
svelte-expert
Raudbjorn
Expert Svelte/SvelteKit development assistant for building components, utilities, and applications. Use when creating Svelte components, SvelteKit applications, implementing reactive patterns, handling state management, working with stores, transitions, animations, or any Svelte/SvelteKit development task. Includes comprehensive documentation access, code validation with svelte-autofixer, and playground link generation.
nestjs-expert
davila7
Nest.js framework expert specializing in module architecture, dependency injection, middleware, guards, interceptors, testing with Jest/Supertest, TypeORM/Mongoose integration, and Passport.js authentication. Use PROACTIVELY for any Nest.js application issues including architecture decisions, testing strategies, performance optimization, or debugging complex dependency injection problems. If a specialized expert is a better fit, I will recommend switching and stop.
perf-lighthouse
tech-leads-club
Run Lighthouse audits locally via CLI or Node API, parse and interpret reports, set performance budgets. Use when measuring site performance, understanding Lighthouse scores, setting up budgets, or integrating audits into CI. Triggers on: lighthouse, run lighthouse, lighthouse score, performance audit, performance budget.