Markway

by Anup Chavan
5
4
3
2
1
New Plugin

Description

This plugin has not been manually reviewed by Obsidian staff. Sync Apple services with Obsidian

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Markway for Obsidian

Markway for Obsidian syncs Markdown notes with Apple Journal through Markway.app.

It is the Obsidian adapter for the larger Markway project: a gateway between Apple services and Markdown. The plugin watches eligible Markdown files, asks the native Markway app to push or pull Journal entries, and keeps sync metadata in plugin data instead of cluttering note frontmatter.

Important Security Model

The plugin does not need Full Disk Access.

Apple Journal data lives in protected macOS group containers. Instead of asking users to grant Obsidian broad permissions, the plugin communicates with Markway.app through a local bridge inside the current vault:

<vault>/.obsidian/plugins/markway/bridge

Markway.app holds the macOS permissions and performs Journal operations. The plugin does not expose a network socket, does not import Node's fs module, and does not grant Obsidian access to Apple's Journal container. The plugin writes request files through Obsidian's vault adapter, and Markway.app reads those files from the vault path selected by the user.

Requirements

  • Obsidian desktop.
  • Markway.app installed and configured.
  • A local Obsidian vault.
  • macOS with Apple Journal available.

The plugin is desktop-only because the current Journal bridge depends on macOS.

Installation

For beta releases:

  1. Install and open Markway.app.
  2. Choose your vault in Markway.app.
  3. Grant Full Disk Access to Markway.app, not Obsidian.
  4. Download the plugin release files:
    • main.js
    • manifest.json
    • styles.css
  5. Place them in:
<vault>/.obsidian/plugins/markway/
  1. In Obsidian, enable Community plugins and enable Markway.

Settings

The plugin supports both Obsidian's legacy settings renderer and the newer declarative settings API.

Main settings:

  • Automatic sync: push/pull after edits and bridge events.
  • Debounce: delay before automatic push.
  • Vault path override: fallback when Obsidian cannot expose a local path.

Journal settings:

  • Journal folder: default folder for imported Journal entries.
  • Rules: filter which Markdown files should sync.
  • Delete Journal entries when synced Markdown files are deleted.
  • Delete Markdown files when synced Journal entries are deleted.
  • Properties: frontmatter templates generated from Journal data.
  • Add title as heading: optionally render Journal title as the first Markdown heading.

Default rule:

folder is Journal

Template Properties

Journal template properties let you generate frontmatter without deleting unrelated user properties.

Example:

music = {{music|map:item => item.title|wikilink}}

This can produce:

music:
  - "[[Sahiba]]"
  - "[[How Do You Know]]"

Supported variables include:

  • title
  • content
  • created
  • modified
  • music

More attachment variables will be added as Markway decodes them.

Commands

The plugin registers commands for:

  • Push current file to Journal.
  • Pull current file from Journal.
  • Sync Journal now.
  • Run diagnostics.

Command names are intentionally Obsidian-facing; low-level Journal access stays in Markway.app.

Development

Install dependencies:

npm install

Run checks:

npm run lint
npm run build
npm test

During development:

npm run dev

The source is organized under:

  • src/bridge
  • src/journal-template
  • src/rules
  • src/settings
  • src/sync

Root files such as src/sync-utils.ts are compatibility barrels for stable imports.

Release

The plugin release workflow is:

.github/workflows/release.yml

Create a tag:

git tag 0.1.2
git push origin 0.1.2

The workflow builds and publishes a draft GitHub release containing:

  • main.js
  • manifest.json
  • styles.css

What To Commit

Commit:

  • .github
  • src
  • test
  • styles.css
  • manifest.json
  • versions.json
  • package.json
  • package-lock.json
  • tsconfig.json
  • eslint.config.mts
  • esbuild.config.mjs
  • version-bump.mjs
  • README.md

Do not commit:

  • node_modules
  • main.js
  • data.json
  • source maps
  • .DS_Store

Disclaimer

Markway is not affiliated with Obsidian or Apple. Apple Journal support depends on Markway.app and its reverse-engineered Journal bridge.