cohecia

Portable integrations

Your research moves.
Your access stays narrow.

Reader Mode markets Kindle, Instapaper, Pocket and Obsidian as synced tools but documents no account connection for them. Cohecia exposes the useful file contract directly in the website.

Nothing leaves this tab while you choose and inspect a file. An account write occurs only after a complete preview and an explicit save.

Four honest paths

No extension. No invented provider sync.

01 · Into Cohecia

Kindle

Local file

Choose My Clippings.txt. Cohecia groups up to 2,000 highlights and notes into one editable research paper before any account save.

Import clippings →
02 · Into Cohecia

Instapaper

Current exports

Review a full-account CSV as private bookmarks, or bring article highlights from Instapaper's current text, Markdown or HTML export into Research.

Move a reading list →
03 · Historical migration

Pocket

Service retired

Pocket shut down and its API stopped transacting in 2025. Cohecia can still recover an export file you already own; it never offers a dead Connect button.

Inspect an export →
04 · Both ways

Obsidian

Markdown

Import a Markdown note into Research or download complete source-credited Composer research as a normal .md file for any vault.

Open Markdown exchange →

Research file

Preview the complete thought.

Up to 2 MB and 2,000,000 characters. Markdown, HTML, text, Cohecia JSON, ENEX and Kindle clippings are normalized locally, then remain editable before save.

Import research file

Markdown, HTML, text, Cohecia JSON, Evernote ENEX or Kindle My Clippings.txt. Parsing happens in this browser before account save.

You can inspect an import here. Sign in and connect the database to save it.

Reading list

Move bookmarks before fetching sources.

Instapaper CSV and legacy Pocket HTML/CSV stay in the browser for review. Cohecia sends only approved URL metadata in bounded batches and spends no publication credit until a source is opened.

Move a reading list into Cohecia Pocket · Instapaper

Portable migration

Your old reading list becomes private Cohecia bookmarks.

Choose an Instapaper CSV, Pocket ril_export.html, Pocket CSV or compatible bookmark export. Parsing happens in this browser; only the reviewed URL metadata is sent when you confirm.

Gated providers

Remote providers stay off until their own flag is exactly true. Computer upload needs no key.

COHECIA_LOCAL_IMAGE_UPLOAD_ENABLED

local-image-upload

Enabled

Insert a PNG, JPEG, WebP or GIF chosen on this computer from the Story image panel. No external key is required.

A computer upload is private to the document. It is not a grant to forward the file to a public image host.

No third-party charge. Document storage later follows the existing Storyboard asset budget. An oversized or disallowed file is refused and the document stays unchanged.

No third-party secret.

COHECIA_UNSPLASH_IMAGES_ENABLED

unsplash-images

Enabled

Search Unsplash photos and insert one attributed image into the Story image selector.

Search queries are sent to Unsplash. Document text is not. The access key stays on the server.

The demo application tier is documented at 50 requests per hour. Production requires Unsplash approval. Published production limits disagree across Unsplash pages, so the dashboard and response headers have to be rechecked before any higher cap. Cohecia does not treat the API as unlimited or permanently free. A 403 or 429 becomes a visible quota message. URL entry and the rest of the editor keep working. Nothing is retried without a bound, and no other image vendor is called in its place.

Needs UNSPLASH_ACCESS_KEY.

COHECIA_NASA_IMAGES_ENABLED

nasa-images

Enabled

Search the NASA Image and Video Library and insert one still image with its credit and restrictions.

Only the search words and the selected NASA id leave Cohecia. Private document text is not attached.

The images.nasa.gov library API used here does not use the api.nasa.gov DEMO_KEY quota. Those general API limits must not be copied onto this endpoint. No paid NASA plan is required for this read API. A rate limit or upstream failure leaves the editor usable and does not fall through to Unsplash.

No third-party secret.

COHECIA_KROKI_ENABLED

kroki

Disabled

Render a diagram from its source through one configured Kroki instance and keep that source editable.

Diagram source can contain private text. It is sent only to the configured instance, and only when the flag is on. Public kroki.io is a privacy refusal.

A self-hosted instance has operator cost: CPU, memory, egress and patching. The public instance's lack of an invoice does not make it acceptable for private documents. The form shows a safe error. No second renderer is contacted, and no unsanitized SVG is inserted.

Needs KROKI_ENDPOINT.

COHECIA_GOOGLE_DOCS_ENABLED

google-docs

Disabled

Import one Google Doc the owner selects, using the drive.file scope, without asking them to publish it.

Only a document the owner opens with this app through drive.file is readable. A private doc is never turned into a public link to make import easier.

Google documents a read and write quota. Its published note says charges for quota overages may arrive later in 2026, so cost has to be revalidated before enabling. This adapter does not buy quota. A 429 stops after the bounded attempt. The same document is not sent to another importer.

Needs GOOGLE_DOCS_CLIENT_ID, GOOGLE_DOCS_CLIENT_SECRET, GOOGLE_DOCS_REDIRECT_URI, COHECIA_INTEGRATION_KEY.

COHECIA_ILOVEPDF_ENABLED

ilovepdf

Disabled

OCR a PDF whose local text layer is not enough, after a calculated credit ceiling and an explicit owner consent.

A private PDF leaves Cohecia only when the flag is on, local text is insufficient, the owner consents, and the credit ceiling is known. Tables and images can survive local extraction only as the text layer pdf.js already found.

The pricing page consulted for this backlog advertises 2,500 free monthly credits with different costs per tool and page. The API introduction still mentions 250 files per month. Those public numbers disagree, so they are not a budget. One credit is not one document. If credits are unknown, short, or rejected, the file is not uploaded and nothing is purchased. No second OCR vendor receives the file. Local text, even if incomplete, is what remains.

Needs ILOVEPDF_PUBLIC_KEY, ILOVEPDF_OCR_CREDITS_PER_PAGE.

COHECIA_DICTIONARY_ENABLED

dictionary

Disabled

Look up one English word from the editor without leaving the document.

Only the selected word is sent. Surrounding private prose stays in the editor.

The public site presents the API as free. It does not publish a numeric quota, a paid tier, or an SLA. Cohecia does not promise multilingual coverage or uptime. The panel says the dictionary is unavailable or has no entry. Editing continues. No commercial dictionary is contacted as a fallback.

No third-party secret.

After migration

Notion and Kindle are not marked restored.

Restored: no. The rows below are code and local-test evidence, not a live provider certificate.

notion

OAuth connect and callback

partial

app/api/integrations/notion/start/route.ts and callback/route.ts build a public OAuth URL and reject an incomplete token. Mocked tests cover the callback shape. No live workspace was connected after the migration in this change.

With NOTION_CLIENT_ID, NOTION_CLIENT_SECRET, NOTION_REDIRECT_URI and COHECIA_INTEGRATION_KEY, connect a non-production workspace and record the callback. Do not treat a visible Connect control as a finished import.

notion

Choose an authorized page, import its content and paginate

absent

The Notion adapter projects Cohecia highlights out to one page. It does not list pages for the owner to pick, import a private page's blocks, or paginate a page search.

Keep page import off until a separate flag, drive-style minimum scope and pagination tests exist. Do not publish a Notion page to make it readable.

notion

Highlight sync, revoked token and disconnect

partial

notion-auth.ts refreshes once on 401 and posts to https://api.notion.com/v1/oauth/revoke on disconnect. Those paths are covered with mocks, not with a migrated production token.

Replay a revoked-token and disconnect smoke test against a sandbox workspace before calling the migration restored.

kindle

Import My Clippings.txt

implemented

parseResearchImport recognizes Kindle clipping separators and keeps the quoted text. The integrations page imports the file locally.

No Amazon account is required for this path. Keep using a synthetic clippings file in QA.

kindle

Create an EPUB for a manual Send to Kindle hand-off

implemented

Composer builds a local EPUB with buildTextFirstEpub and opens https://www.amazon.com/sendtokindle. Cohecia does not receive the Kindle address.

Keep the copy that distinguishes a created file from a file Amazon has accepted.

kindle

Email delivery and presence in the Kindle library

absent

There is no Send to Kindle email transport, no authorized-sender mailbox, and no Amazon library confirmation. The UI now says those steps are not implied by the download.

If email delivery is wanted later, explain Amazon's approved-sender list and verify delivery with a synthetic file. Do not mark the library copy as present from an EPUB download.