Ownly

io.github.liuh886由 GitHub 帳號 liuh886 發布v0.7.1更新於 Oct 24, 2026

Local-first Ownly evidence and repeatable Planner visits with preview-before-commit writes.

概覽

AI 產生的概覽

面向本機 Ownly 持有物帳本的 MCP 伺服器,讓助理以唯讀方式查看摘要、搜尋紀錄與行程資訊,並可選擇開啟先預覽後提交的寫入。

可以做什麼
  • 彙總帳本資料並執行 Doctor 健康檢查
  • 搜尋持有物並讀取有限的物品事實、歷史、回顧與使用日誌
  • 列出進行中的週期性支出、即將到期的訂閱續約,以及依付款帳戶分組的支出
  • 讀取 Planner 行程、造訪、預算估算與行事曆推算
  • 開啟寫入後可建立與更新紀錄、變更生命週期、附加日誌、新增回顧與快照,以及封存與還原
適用情境
適合已用 Ownly 資料夾記錄持有物、週期性支出、回顧與行程,並希望助理查詢這些內容,或以可預覽、可還原的方式協助維護,而不必手動編輯 Markdown 的使用者。
執行需求
以本機 stdio 程序執行,透過 npm 套件以 npx 安裝。需設定 OWNLY_DATA_DIR,指向包含 Ownly/ 的上層目錄或包含 Objects/ 的資料根目錄。選用 OPENROUTESERVICE_API_KEY 可重新整理交通路段並最佳化移動時間。寫入需將 OWNLY_MCP_ALLOW_WRITE 設為 1。
安裝前請注意
預設唯讀;將 OWNLY_MCP_ALLOW_WRITE 設為 1 後,助理可建立、更新、封存與還原紀錄,但提交為兩階段並含預覽、備份與衝突偵測。工具回傳的事實會進入所連接助理的上下文,工作階段期間資料可能離開本機。OPENROUTESERVICE_API_KEY 會傳送給 OpenRouteService 用於行程計算。若資料夾由雲端硬碟同步,該服務商可能上傳這些檔案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ownly,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Ownly

[Obsidian Plugin] [Web App] [PWA] [Status] [License: MIT] [Ko-fi]

Own less, Live more, Decide better.

中文文档

A local-first ownership memory and decision ledger.

Ownly helps you record what you own, what it costs, how you used it, and what you learned. Personal data stays in an Ownly data folder as plain Markdown with YAML frontmatter.

Ownly doesn't host your data. You choose where your files live.

The Ownly data folder can live in a normal local directory or inside a local folder synchronized by a personal cloud provider you control. Obsidian is useful for inspecting the Markdown, but it is not required for the hosted Web app, installed PWA, Agent CLI, or local MCP server.

Open Ownly

Entry pointObsidian required?Local process required?Best for
GitHub Pages Web appNoNoImmediate use in a supported desktop browser
Installed PWANoNoA standalone app window with offline application-shell startup
Obsidian pluginYesNoNative Vault integration and direct Markdown work
Agent CLINoYesDeterministic scripting and validated local mutations
Local MCPNoYesBounded reads plus opt-in, preview-before-commit maintenance for compatible agents

The Web app and PWA are the same browser runtime. Installation changes the launch experience, not the data model. The product homepage itself is not a PWA surface.

First use: choose where your data lives

When Ownly starts without an existing folder permission, choose a storage location and then create new data or open an existing Ownly data folder.

On this device

Choose a normal local filesystem folder. Ownly reads and writes that folder directly. Nothing is synchronized unless you configure synchronization outside Ownly.

In your personal cloud folder

Choose a local folder already synchronized by Dropbox, Google Drive, OneDrive, iCloud Drive, or another provider you control.

Ownly still works with normal local files. It does not use provider APIs, OAuth, provider credentials, an Ownly cloud mirror, or a separate remote filesystem. Your provider handles synchronization under its own privacy and security policies.

Keep the folder available offline when the provider supports online-only placeholders, and use one sync provider per Ownly data folder to reduce conflicting copies.

Create new data

Select a parent location such as Documents, an Obsidian Vault root, a local personal-cloud folder, or an empty folder already named Ownly.

Ownly initializes:

text
Ownly/  Objects/  Accounts/  Snapshots/  Reviews/  Trips/  Trip Places/  Trip Visits/  Trip Legs/  Trip Expenses/  Logs/    Object Experiences/  Archive/    Objects/    Accounts/    Snapshots/    Reviews/    Object Logs/

If the selected folder is already named Ownly, Ownly uses it directly and does not create Ownly/Ownly.

Open existing data

Select any supported filesystem location:

  • an initialized Ownly data root containing Objects/;
  • an empty or initialized folder named Ownly;
  • an Obsidian Vault containing an Ownly/ child folder;
  • an Obsidian Vault using the plugin's configured Ownly data folder;
  • any of the above inside a local folder synchronized by the user's own provider.

The browser asks for explicit read/write permission. Personal Markdown files are not uploaded to GitHub Pages and are not copied into the PWA service-worker cache. If the selected folder is synchronized by a third-party provider, that provider may upload and synchronize those files independently of Ownly.

The hosted Web/PWA runtime uses Google Analytics 4 measurement ID G-KXXVS33FQ2 for product adoption and can also load Cloudflare Web Analytics for aggregate traffic and Web Vitals when NEXT_PUBLIC_CLOUDFLARE_WEB_ANALYTICS_TOKEN is configured at build time. Ownly custom analytics events never include Markdown contents, local file names, form values, object records, reviews, account snapshots, selected-folder data, local paths, inferred provider names, or MCP tool results. The Obsidian plugin, Agent CLI and MCP runtime do not load either web analytics provider.

Recommended storage

Standalone local use:

text
<My local folder>/  Ownly/    Objects/    Accounts/    Snapshots/    Reviews/    Trips/    Trip Places/    Trip Visits/    Trip Legs/    Trip Expenses/    Logs/    Archive/

Inside an Obsidian Vault:

text
<My Obsidian Vault>/  Ownly/    Objects/    Accounts/    Snapshots/    Reviews/    Trips/    Trip Places/    Trip Visits/    Trip Legs/    Trip Expenses/    Logs/    Archive/

Inside a personal cloud-synced local folder:

text
<My Dropbox / Google Drive / OneDrive / iCloud Drive folder>/  Ownly/    Objects/    Accounts/    Snapshots/    Reviews/    Trips/    Trip Places/    Trip Visits/    Trip Legs/    Trip Expenses/    Logs/    Archive/

All three layouts use the same Ownly data model. The personal-cloud option does not introduce a second storage backend; the external provider synchronizes the normal filesystem folder.

Product principles

  • User-controlled storage — Ownly does not host your personal ledger. You choose where the filesystem folder lives.
  • Local by default — no required cloud account, hosted database, provider OAuth, or mandatory synchronization.
  • Markdown native — records remain portable and human-readable.
  • Decision led — observe, acquire or pass, use, exit, and review.
  • Recoverable mutations — archive and restore are distinct from permanent deletion.
  • One data model — Web, PWA, Obsidian, CLI and MCP operate on the same schemas and directory structure.
  • Fact ready — scripts and external AI agents can consume deterministic data contracts; Ownly itself is not an AI assistant.

What Ownly tracks

RecordPurpose
Physical itemPurchase, use, cost, condition, retirement, transfer, or discard lifecycle
Recurring costSubscription or other repeating obligation, billing cycle, status, and annualized cost
One-time experiencePlan, budget, actual cost, location, completion, and review
SnapshotPoint-in-time net-worth and account-balance facts
ReviewStructured post-use, post-exit, monthly, or annual reflection
Object experience logAppend-only usage, issue, maintenance, regret, lesson, comparison, or exit event

Fact-ready Agent CLI

Ownly exposes deterministic JSON read/write commands for scripts and external agents. It does not include model APIs, embeddings, AI chat, or generated recommendations.

bash
export OWNLY_VAULT=/path/to/location-containing-Ownly
# Recommended (wyqd remains for backward compatibility)npm run --silent ownly -- object list --json# Legacy aliasnpm run --silent wyqd -- object list --jsonnpm run --silent wyqd -- object get --id <id> --jsonnpm run --silent wyqd -- object history --id <id> --jsonnpm run --silent wyqd -- object review-needed --jsonnpm run --silent wyqd -- recurring list --active --jsonnpm run --silent wyqd -- summary --json

See:

The CLI data location may point to an Obsidian Vault or another filesystem location containing the Ownly data folder, including a user-controlled synchronized local folder.

Agent / MCP

Ownly also exposes a local-first MCP server for Codex, Claude Code and other MCP clients that can start a local STDIO process. It is read-only by default; persistent mutations require explicit startup permission plus a separate preview and commit call.

The MCP server is an adapter over the same validated Ownly data model. It does not create a second database, hosted mirror or embedded AI assistant.

The MCP tool surface covers:

  • data summary and Doctor health checks;
  • object search and bounded object facts;
  • object history with reviews and append-only experience logs;
  • active recurring costs;
  • upcoming subscription renewals;
  • recurring costs grouped by payment account with currencies kept separate;
  • deterministic review-needed records.
  • Planner trips, visits, budget estimates, and calendar projections, plus two-phase schedule edits and local OpenRouteService travel refresh/optimization.
  • opt-in creation and updates, lifecycle changes, append-only logs, reviews, snapshots, and recoverable archive/restore;
  • short-lived before/after previews, pre-write backups, stale-write conflict detection, and idempotent commits.

The source-of-truth stays in the user-selected Ownly data folder. Facts returned by an MCP tool can enter the connected external agent's context, so Ownly does not claim that every selected fact remains on-device during an agent session.

Install it with npx -y @ownly-app/mcp --data-dir <vault-or-data-root> (source in packages/mcp). See the Ownly MCP Guide for Codex and Claude Code setup, privacy boundaries and example prompts.

Current runtime status

AreaStatus
Product homepageStatic bilingual product explanation with an embedded interactive preview
Hosted Web appStatic GitHub Pages runtime with user-selected filesystem access
Installed PWAApp-route-only install surface, standalone launch and cached app shell
Obsidian pluginNative Vault interface over the shared Ownly data model
Agent CLIStable, strict-typed fact-ready JSON contract
Local MCPRead-only by default; opt-in two-phase writes over the canonical Ownly evidence store
Data storagePlain Markdown + YAML frontmatter in a user-controlled filesystem folder
Mutation safetyValidation, preview/commit confirmation, atomic writes, safety backups, audit logs, conflict detection, archive/restore, and CI contracts

Current validation and known coverage gaps are documented in Quality Baseline.

Browser support

Direct folder access uses the File System Access API.

  • Recommended: current desktop Chrome or Microsoft Edge.
  • Unsupported browsers can view the product page and embedded preview but cannot connect a real Ownly data folder.
  • Mobile direct-folder access is not a production target.
  • Browser permission may need to be renewed after restart or permission reset.
  • A personal cloud folder must be exposed by its provider as a usable local filesystem folder; Ownly does not provide a remote-drive API fallback.

See Web Runtime for privacy boundaries, PWA behavior, and deployment details.

Obsidian plugin

Install from Obsidian Community Plugins:

👉 Install Ownly

The plugin is optional for Web/PWA users. Use the term Obsidian Vault only for a real Vault or the Obsidian runtime; the cross-runtime storage term is Ownly data folder.

Data health

Ownly includes deterministic Doctor checks for issues such as:

  • duplicate IDs;
  • unsupported schema versions;
  • invalid costs or dates;
  • missing object/review references;
  • stale snapshots;
  • missing data directories.

These checks operate on Ownly facts and filesystem accessibility. Doctor does not inspect cloud-provider accounts or use AI.

Documentation

Development

bash
npm cinpm run validatenpm run testnpm run test:e2e:datanpm run test:mcpnpm run wyqd -- --vault <path> object list --json

MCP package validation additionally runs only for MCP-specific changes:

bash
npm install --prefix packages/mcp --ignore-scripts --no-audit --no-fundnpm run build --prefix packages/mcpnode packages/mcp/dist/index.js --help(cd packages/mcp && npm pack --dry-run)

License

MIT. See LICENSE. Ownly does not host personal ledger data. A user-selected filesystem-sync provider or external MCP client may process data under its own privacy and security policies. Hosted Web/PWA may use GA4 for limited product-adoption events and Cloudflare Web Analytics for aggregate traffic and Web Vitals; the Obsidian plugin, CLI and MCP runtime do not load either analytics provider.

來源:README.md,提交 9abce05

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.7.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分