DEV.co
Open-Source Databases · vzhd1701

evernote-backup

evernote-backup is a Python command-line tool that syncs Evernote notes to a local SQLite database and exports them as ENEX files. It supports both Evernote and Yinxiang (Chinese service), with incremental sync, notebook-level or single-note export, and optional task/reminder backup.

Source: GitHub — github.com/vzhd1701/evernote-backup
1.7k
GitHub stars
125
Forks
Python
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryvzhd1701/evernote-backup
Ownervzhd1701
Primary languagePython
LicenseMIT — OSI-approved
Stars1.7k
Forks125
Open issues17
Latest release1.13.1 (2025-04-23)
Last updated2025-04-28
Sourcehttps://github.com/vzhd1701/evernote-backup

What evernote-backup is

A Python CLI leveraging the Evernote Cloud API for authentication and sync, storing notes in SQLite with offline ENEX export capability. Supports OAuth for Evernote, credential-based auth for Yinxiang, and uses a custom sync protocol to track incremental changes. Deployable via pip, Homebrew, Docker, or from source.

Quickstart

Get the evernote-backup source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/vzhd1701/evernote-backup.gitcd evernote-backup# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Personal Evernote account backup & archival

Ideal for individuals who want a local, offline-accessible copy of their Evernote notes. Supports incremental syncing to keep backups current with minimal overhead.

Bulk export for migration to alternative note systems

Enables exporting entire Evernote libraries as ENEX files—suitable for moving to Obsidian, logseq, or other note apps that support ENEX import.

Scheduled automated backups in containers

Docker support and pipex/uv tooling make it well-suited for cron jobs or scheduled container tasks to maintain current backups without manual intervention.

Implementation considerations

  • Requires valid Evernote or Yinxiang credentials and OAuth setup (or headless login with credentials). First sync can be time-consuming for large note libraries (behavior scales with note count).
  • SQLite database file (`en_backup.db`) must be stored on stable local disk; loss of database requires re-initialization and full re-sync. Plan disk space accordingly.
  • Auth token expiry is handled via built-in `reauth` command, but tokens must be refreshed before they expire. Script automated syncs to restart on auth failures.
  • Docker deployment requires port 10500 forwarding for OAuth callback if used in a container. Ensure networking configuration matches your infrastructure.
  • Python 3.x required; portable binaries available for macOS, Linux, and Windows, but source builds require Poetry for dependency management.

When to avoid it — and what to weigh

  • Real-time bidirectional sync required — This tool is unidirectional (pull-only). Changes made locally are not synced back to Evernote; it is designed for backup and export, not two-way synchronization.
  • Task/reminder backup without extra setup — Tasks and reminders require obtaining an official desktop app token via a third-party tool (evertoken) and are not accessible via the standard public API. This adds complexity.
  • Enterprise-scale note management across teams — No collaborative features, team vaults, or enterprise API support documented. Best suited for individual use, not multi-user or organizational deployments.
  • Offline-first or zero-network-access scenarios — Initial database setup and sync operations require live Evernote API access. Database can be queried offline, but synchronization cannot begin without network connectivity.

License & commercial use

MIT License. Permissive OSI-approved license allowing use, modification, and distribution with minimal restrictions. See LICENSE file in repository for full terms.

MIT License permits commercial use without requiring a commercial license or fee. However, ensure compliance with Evernote's Terms of Service and API usage policies—the tool itself is licensed permissively, but your use of Evernote's services must comply with Evernote's own commercial policies.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Authentication credentials (username/password/OAuth tokens) are handled via CLI prompts or command-line flags; exercise caution in scripts to avoid credential exposure in logs. SQLite database contains plaintext note data and auth tokens—restrict file permissions. No encryption at rest documented. SSL/TLS used for API communication; CA certificate validation can be customized. No formal security audit or vulnerability disclosure policy stated; review code and dependencies before using with sensitive data.

Alternatives to consider

ExportAllEverNote

Similar Python-based export tool, but appears less actively maintained and lacks incremental sync or local database storage; one-shot export only.

evernote-to-sqlite

Converts existing ENEX files into SQLite for querying, but does not perform live sync from Evernote API. Use if you already have ENEX exports and need database access.

Evernote's official export feature

Built into Evernote client; simpler but manual, not scriptable, and does not provide incremental updates or automated scheduling.

Software development agency

Build on evernote-backup with DEV.co software developers

Our team can help you integrate evernote-backup into your workflow, automate backups, or build custom data export pipelines. Contact us for a consultation.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

evernote-backup FAQ

Can I sync changes made in my local database back to Evernote?
No. This tool is unidirectional (backup and export only). It does not support pushing local changes back to Evernote.
What happens if my Evernote auth token expires?
Run `evernote-backup reauth` to refresh the token. Tokens will expire; plan to reauth periodically if syncing is scheduled over long periods.
Can I back up tasks and reminders?
Yes, but only with an official desktop app token obtained via the third-party tool 'evertoken'. Standard public API does not support task access.
Does this tool work with Yinxiang (Chinese Evernote)?
Yes. Use the `--backend china` flag during initialization to connect to Yinxiang instead of Evernote. OAuth is not supported for Yinxiang; use credentials instead.

Custom software development services

Adopting evernote-backup is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate open-source databases software in production.

Need a custom Evernote backup or migration strategy?

Our team can help you integrate evernote-backup into your workflow, automate backups, or build custom data export pipelines. Contact us for a consultation.