Aller au contenu principal

Settings → Connectors

This page gathers every notes system that feeds your memory. It shows one tile per system: Notion, Obsidian, AFFiNE, Logseq, graphify, and plain watched folders. The rail entry is Connectors. Above the title, a small label reads Notes sources. The lead sentence reads Mnemosyne OS reads the notes tools on this machine. Nothing in them is ever moved or deleted.

Every connector is set up here. The Vaults page keeps a pointer card on its Import tab, with an Open Connectors button. Its text reads Notion, AFFiNE and every notes system are now set up in Settings › Connectors.

How a tile knows its state​

A tile reads its state from disk. It does not trust what the onboarding was told. The app looks at each folder your vaults watch. It recognises the system by the marks it leaves. The marks are tried in this order:

SystemMark on disk
Notion, direct importa .notion-manifest.json file, whose lastRunAt is the last import
graphifygraphify-out/graph.json, whose date is the last graph
Obsidiana .obsidian/ folder
Logseqa logseq/ folder beside pages/ or journals/
AFFiNEa Markdown file whose front matter says source: "affine"
Notion, Markdown exportMarkdown files named <title> <32 hex>.md
Watched foldersnone of the above

graphify is tried before Obsidian on purpose. The command graphify export obsidian writes a .obsidian/ folder inside graphify-out/. Without that order, a code project would read as an Obsidian vault.

The app also looks one folder down. You may watch the parent of your Obsidian vault, and the tile still finds it. A whole-workspace Notion export is found two folders down. The read is bounded: at most 500 names per folder, 20 sub-folders and 20 file headers of 512 bytes. It writes nothing.

Each tile shows one of four states:

StateMeaning
ConnectedAt least one folder of this system is watched and present.
CheckSomething needs you. The tile names it in one line.
Not set upNothing of this system is linked yet.
UnknownFolder watching did not start, so the app could not look.

A tile in the Check state shows one of these lines:

Line on the tileCause
A declared folder no longer exists.A linked folder is gone from disk.
A folder is declared but not watched right now.The folder exists and is enabled, but no watcher runs on it.
Notion refuses the saved token: expired or revoked.Notion tile only.
graphify's output is watched instead of the project.graphify tile only.

When folder watching did not start, a red line sits above the tiles. It reads Folder watching did not start: the state of the folders is unknown, not empty. The tiles then show Unknown, never Not set up. One exception: a Notion tile whose token Notion refused stays in Check.

The page around the tiles​

While it reads, the page says Reading the watched folders…. If the read fails, the page shows Connectors could not be read: and the error code.

The round arrow at the top right is Read again. It reads the folders again and searches again for graphify projects.

What every tile shows​

Each tile is numbered 01 to 06. It carries the system's logo, or a folder icon for Watched folders. Then come these rows:

  • Last seen: the most recent of the last import and the last file event across the tile's folders. It reads Never when nothing was seen. It reads Unknown when the tile is in the Unknown state.
  • Vault: the vaults these folders feed, or None.
  • Folders: shown when the tile has at least one folder. One folder shows its path. Several show a count, {n} folders, with every path in the tooltip.
  • An extra line for some tiles, described below.
  • One sentence that says what Mnemosyne OS may do in that system. Each tile has its own sentence.

The button at the bottom reads Set up when the tile is Not set up. It reads Manage otherwise, and Close while its panel is open.

The setup panel opens right under the row of the tile you pressed, across the whole grid. One panel is open at a time. Its title is the system's name, with a Close cross at the right.

Notion​

The tile sentence reads Read only: nothing is ever written to Notion. Pages arrive as files, by the direct import or by a Markdown export in a watched folder. One tile covers both ways in.

Extra lines on the tile:

LineWhen
Pages imported into {dir}, a folder no vault watches yet.The last import wrote into a folder that no vault watches.
Token saved; no watched folder holds its pages yet.A token is saved and no Notion folder is linked.

The page checks the token with Notion itself when it opens. Each window keeps the answer for 10 minutes. A token revoked since then turns the tile to Check.

The Notion panel​

The panel starts with a hint. It says the import writes one Markdown file per page, with its files and the database rows. It also says a watched folder turns them into memory, and that nothing is written to Notion. While it looks for a token, the panel says Looking for a saved token….

  1. Create a token at Notion

    Without a saved token, the panel shows a five-step text and the button Open Notion's token page. It opens https://www.notion.so/developers/tokens. The text asks you to create a new token, pick your workspace and tick « Notion API ». It suggests an expiration of 7 or 30 days. No page needs to be shared: the token reads what you can read.

  2. Save the token

    Paste the token in the field labelled Notion token, placeholder ntn_…. Press Save the token. It reads Saving… meanwhile. The field is emptied after a save, and the token is never shown again. A line under the field says the token could also write, and that Mnemosyne OS only reads with it.

  3. Check the account

    Once a token is saved, a box says Token saved on {date}. While Notion is asked, it says Checking with Notion…. Then it shows Connected as {name}. When Notion gives no name, it shows Token accepted by Notion.

  4. Choose a folder

    Press Choose a folder…. The dialog asks Where should the Notion pages be written? Until then, the line reads No folder chosen yet.

  5. Import

    Tick Include meeting-note transcripts if you want them. Press Import now. It reads Importing…. Progress shows Listing the pages…, then {done} of {total} pages.

Saving refuses some inputs with a sentence:

SentenceCause
Paste a token first.The field is empty.
The token has spaces in it: copy it again.The pasted text holds a space.
That is a link, not a token.The pasted text is a URL.
The token could not be sealed on this machine.The seal failed.

A token that does not start like a Notion token is saved anyway, with a note. The note says Notion tokens usually start with ntn_. If the machine has no keystore, a red line says This machine cannot seal the token: it is stored readable on disk.

The account check can also answer:

SentenceCause
Notion refuses this token: it expired or was revoked. Create a new one.Notion answered unauthorized.
Notion could not be reached. Check the connection.Network error or timeout.
Notion did not answer as expected:Any other answer, followed by the detail.

Forget the token removes the saved token. It is disabled while an import runs.

The import receipt​

After an import, a receipt box gives every count. The first line counts the pages written, the database rows among them, the pages unchanged and the files saved. The target folder follows. For the last import the app kept, a line says Ended {when}. Other lines appear only when they apply.

LineMeaning
{written} page(s) written ({rows} database row(s)), {unchanged} unchanged, {files} file(s) saved.Always, as the first line.
The token sees no page. A token from an integration only sees the pages shared with it (••• → Connections).Notion listed zero pages.
Notion said its list is not complete: some pages may be missing. Import again later.Notion flagged its search as incomplete.
Stopped after 30 minutes. Import again: the pages already written are skipped.The 30-minute limit was reached.
{n} block(s) Notion did not give (a kind it cannot render, like a button, or not shared with this token). Each is marked in its page.Some blocks were unreadable.
{n} file(s) not downloaded again: the earlier copy is kept.Attachments already on disk.
{n} file(s) not saved: their links stay in the page and will stop working.Attachments that failed.
{n} old file(s) removed: their page was renamed.Renamed pages.
Page {title} not imported:One line per failed page, with the reason.

Pages written by an earlier import and not listed this time stay on disk. A fold names them: {n} page(s) from an earlier import were not listed this time. Their files are kept: delete them by hand if they are gone from Notion.

The import errors are:

SentenceCause
Save a token first.No token.
Choose a folder first.No folder, or a relative path.
The chosen folder no longer exists. Choose it again.The folder is gone or is a file.
This folder belongs to Mnemosyne OS itself. Choose another one.The folder is inside the app's own data.
An import is already running.One import at a time.
The import stopped:Any other failure, followed by the detail.

The app stops an import after 30 minutes. The screen waits 35 minutes before it gives up. It then says No answer after {minutes} minutes. The import may still be running: check the folder before trying again.

An import started from another screen still shows here. The panel shows it running and reads the result when it ends.

Putting the pages in memory​

An import writes files. A folder no vault watches never becomes memory. When the import folder is not watched, the panel adds this line: This folder is not watched yet: link it to a vault so its pages become memory.

Put it in memory does it in one press. It reads Putting it in memory… meanwhile. A vault named Notion then watches the folder. That vault is created at the root of your vault folder the first time, and reused after. The watch takes .md, .txt, .pdf, .docx, .xlsx, .pptx and .csv files, five folders deep. On success the panel says Done: the « {vault} » vault watches the Notion pages. They enter memory in the next minute, and every new import updates them.

The refusals are:

SentenceCause
Another vault already watches a folder that holds this one: {path}.Overlap with another vault's watch.
No vault folder is set on this machine yet: create a first vault in Settings › Vaults.No vault root is configured.
Could not put it in memory:Any other failure, followed by the code.

To pick another vault, unfold Or choose another vault. It shows the folder linker described under Watched folders, with the import folder already filled in.

Obsidian​

The tile sentence reads Reads the vault. Writes only when asked: an answer saved as a note in _mnemosyne-notes, a topic line in a note's header. Never moves or deletes.

The extra line {n} vault(s) known to Obsidian on this machine. shows when Obsidian's own list holds at least one vault.

The panel lists the linked folders with their vault. A folder that is gone carries the folder-gone line from the Check table. Then comes the hint Link the Obsidian vault folder to a vault: it stays where it is and is watched. The folder linker follows. See Watched folders and the Obsidian page of the manual.

AFFiNE​

The tile sentence reads Reads a copy of AFFiNE's database. Nothing is ever written to AFFiNE. The extra line says AFFiNE found on this machine. or AFFiNE not found on this machine.

The AFFiNE panel​

The panel starts with a hint. It says each AFFiNE document is written as a Markdown file, images included, into the folder you choose. While it looks, the panel says Looking for AFFiNE…. A failed read says Could not read AFFiNE: with the reason. The panel never reports a failed read as AFFiNE being absent.

Two empty cases have their own sentence:

SentenceCase
AFFiNE not found for this account.No AFFiNE data on this account.
AFFiNE is installed but holds no workspace yet.AFFiNE exists with no workspace.

Each workspace found is a row with a checkbox. The row shows the name you gave it and its id, then on this machine or the sync peer. A canary or beta install adds its channel name. AFFiNE's own per-account spaces say personal space and start unticked. Every other workspace starts ticked.

Press Choose a folder… to pick the target, then Import. The import button stays disabled until a folder is chosen and at least one workspace is ticked. It reads Importing… meanwhile.

The receipt says {files} document(s) and {images} image(s) written. It can add these lines:

LineMeaning
{n} document(s) are in AFFiNE’s trash and were left out.Trashed documents are skipped.
{n} old file(s) removed from the folder: their document was renamed, deleted or moved to the trash in AFFiNE.Stale Markdown files.
{n} image(s) AFFiNE no longer has removed from the folder.Stale images.
Document {doc} could not be read:With its reason.
Image {key} not written:With its reason.
Workspace {id} could not be imported:With its reason.
No longer on disk: {ids}Workspaces listed but missing.

The screen waits 10 minutes. After that it says No answer after {minutes} minutes. The import may still be running: check the folder before trying again.

The AFFiNE panel has no one-press memory button. Import into a folder a vault already watches, or link the folder from the Watched folders tile. The standalone AFFiNE reader is described on the Vaults page.

Logseq​

The tile sentence reads Reads the files without changing them. With image extraction on, extracted images go into _mnemosyne-images.

The panel works like the Obsidian one. Its hint reads Link the Logseq graph folder to a vault: it stays where it is and is watched.

graphify​

graphify maps a code project into graphify-out/graph.json. The tile sentence reads Reads graphify-out/graph.json and its date. Never runs graphify, never writes into graphify-out.

The extra line reads {n} project(s) found, {behind} behind.

The tile's state comes from watched folders, like the others. A watched graphify-out/ folder is an issue: the map is watched instead of the code.

The graphify panel​

When graphify-out/ itself is watched, the panel opens with graphify-out itself is watched: that is the map, not the code. Watch the project folder instead.

The panel searches for projects in the watched folders and in the folders you pointed it at. It says Looking for graphify projects… while it searches. A failure reads The search failed: {error}. A folder it could not search reads Not searched ({reason}): {path}.

Each project found shows its path, then these lines:

LineMeaning
graph of {date}The date of graph.json. It reads date unknown when unread.
behind: a commit is newerA git commit is newer than the graph.
up to date with the last commitThe graph is newer than the last commit.
age unknown (no git history read)No git history was read.
Watched, vault {vault}A vault watches the project. Otherwise the button Watch this folder shows.

Watch this folder opens the folder linker with the project's source folder filled in. It never offers graphify-out/.

The folders you pointed at are listed under Searched in. Each one has a Remove this folder cross. Choose where the projects live adds one. The app keeps these folders in its local storage. A capped search adds the line Search bounded: some projects may be missing.

With no project found, the panel shows how to make a graph. If you pointed at folders, it first says No graphify project in these folders. The lead reads No graph yet? Two commands, the second one inside the project folder:

pip install graphifyy
graphify extract . --code-only

Each line has a Copy button. A sentence then explains that agents read the graph with the memory around each function.

The panel ends with Graph made by graphify (Apache-2.0). and a link graphify on GitHub.

Watched folders​

The tile sentence is the same as for Logseq. This tile counts every watched folder that carries no other system's mark. Its panel lists them. Its hint reads Link any folder of notes to a vault: it stays where it is and is watched.

The folder linker​

The Obsidian, Logseq and Watched folders panels share one folder linker. The Notion and graphify panels reuse it with a folder already filled in.

  1. Choose a vault

    Pick a vault in the list Destination vault, placeholder Choose a vault. App sandboxes and Memory Packs are left out of the list. With no vault to offer, the linker says No vault can take a folder yet. A vault is created with the button at the top of the page.

  2. Pick the folder

    Press Link a folder…. The dialog is titled Folder of notes to link. When the folder is already known, the button reads Link this folder and no dialog opens.

  3. Configure the watch

    The Configure DocWatch dialog of the vault panel opens. It is described on the Vaults page.

On success, the linker says Folder linked to the {{vault}} vault. The folder stays where it is. If the vault list cannot be read, the linker says The vaults could not be read: with the reason. If the folder dialog fails, it says The folder picker failed: with the reason.