Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.1.1 instead.

evernote2unbent

Move your Evernote notes into Unbent — notes, notebooks, tags and attachments — without exporting an ENEX file first.

Evernote has no export API, so every other route runs through the desktop client's File → Export, which is manual, unreliable past a few thousand notes, and produces multi-gigabyte files you then have to feed somewhere. This syncs your account with evernote-backup and uploads straight from its local database.

Install

uv tool install evernote2unbent

Or with pipx:

pipx install evernote2unbent

Use

evernote2unbent migrate

That signs you in to Evernote, syncs your account to a local database, then uploads everything to Unbent. It asks which Unbent instance to use the first time and remembers the answer.

Start with one notebook to see the result before moving everything. The sync still fetches your whole account — it is the upload that is scoped:

evernote2unbent migrate -n "Some Notebook"

Interrupted runs are safe to repeat: the sync is incremental, and notes that already landed are skipped rather than duplicated.

Doing the steps separately

migrate runs evernote-backup for you. If you already use it, or want the ENEX files too, run the halves yourself:

evernote-backup init-db
evernote-backup sync
evernote2unbent upload

Re-running is safe

Unbent keys each note on a hash of its title and body, so a note that already landed is skipped rather than duplicated. That makes an interrupted upload resumable by simply repeating the command — and a note whose attachments failed partway gets only the missing files on the next run.

Nothing here deletes or modifies anything in Evernote.

Options

Flag Meaning
-d, --database The database evernote-backup sync wrote (default en_backup.db)
-n, --notebook Only this notebook. Repeatable
-t, --tag Only notes with this tag. Repeatable
--include-trash Include notes from Evernote's trash
--url Instance for one command, without storing it

Signing in

login prints a short code and a link. Approving it in a browser you are already signed in to grants an ordinary session — no password is typed into the terminal, and no long-lived key is pasted from a settings page.

The token is stored in ~/.config/unbent/credentials.json at mode 0600, keyed by instance so a token for one server is never sent to another. logout forgets it locally; signing out everywhere in Unbent revokes it for real.

Which instance

There is deliberately no default. A guessed instance means a forgotten flag can send a migration to a server you did not choose, and that failure is silent, because uploading to the wrong Unbent still succeeds.

The answer is stored in ~/.config/unbent/config.json — plain JSON, mode 0644, separate from the credentials file so changing a URL never means opening one with a token in it.

evernote2unbent set-url https://unbent.app
evernote2unbent show-config

$UNBENT_URL overrides it for a shell session, --url for a single command.

What gets converted

Notes arrive as Markdown. The conversion happens server-side in Unbent, which is why this package does not implement one: Unbent's own importer already has a tested ENML converter, and a second implementation here would drift from it.

Attachments upload separately as raw bytes and are linked from the note body by their content hash, which is how an inline image ends up in the right place.

Credit

The hard part — Evernote authentication, the Thrift API client, and incremental sync — is evernote-backup by vzhd1701, used here as a dependency rather than forked. This package adds an uploader and a CLI on top of it and modifies none of it.

If you want ENEX files rather than a migration, use evernote-backup directly; it does that well and this is not a replacement for it.

License

MIT

Metadata

Release files for evernote2unbent 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evernote2unbent 0.1.0
File Size Uploaded
evernote2unbent-0.1.0.tar.gz 52.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for evernote2unbent 0.1.0
File Interpreter ABI Platform
evernote2unbent-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 69.8 kB

Release files / evernote2unbent-0.1.0.tar.gz

Download URL evernote2unbent-0.1.0.tar.gz
Size 52.7 kB
Tags Source
SHA-256 checksum
How to use checksums
313ff9d78d83deaa026464be245dd72b91714a6ea70c6bbf148acc9d0a2808f4
BLAKE2b-256 checksum
How to use checksums
3278f62176995959aae3719efabe4bd0b03a875a02c783ae77f1e64b30c2ed1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / evernote2unbent-0.1.0-py3-none-any.whl

Download URL evernote2unbent-0.1.0-py3-none-any.whl
Size 17.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0557c7c1f85461351e88bbbdd657c6de6db145df6b5e41e5c4c00a6984160fd
BLAKE2b-256 checksum
How to use checksums
3f5151e8a6fef23623d06d58209791a94efa6fc6cac1f2559b8881c26ba2d569
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page