Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Tree Obs

YuyangYuyang35 downloads

Turn marked TreeChat exports into linked tree notes for graph view.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates1

中文说明

Tree Obs turns a marked Tree Chat Markdown export into one Obsidian note per node and connects parent and child notes with Wikilinks. It also accepts manually marked Markdown that follows the same format.

Relationship to Tree Chat

Tree Obs is an independent companion plugin for Tree Chat. It has its own repository and runs separately. KANYE-Shen maintains Tree Obs; the Tree Chat team does not publish or maintain it.

Tree Obs does not bundle or run Tree Chat. It reads a Markdown file that you place in your Obsidian vault. It does not provide automatic or bidirectional synchronization.

Tree Chat's current Markdown export adds the required node markers automatically. Open Harvest, then choose Export Markdown. Tree Obs does not import JSON.

Data flow

Tree Chat → Harvest → Export Markdown → put the exported .md file in your vault
→ Tree Obs conversion → one linked .md file per node → Obsidian Graph view

Tree Obs leaves the source export in place. It creates a folder named after the root node and writes the generated node notes inside that folder.

Installation

Community plugins

After the listing is approved, install Tree Obs from Obsidian:

  1. Open Settings → Community plugins → Browse.
  2. Search for Tree Obs.
  3. Select Install, then Enable.

Manual installation from a GitHub Release

When a GitHub Release is published, download main.js and manifest.json from the same release. Do not mix files from different versions.

  1. Create <vault>/.obsidian/plugins/tree-obs/.
  2. Copy main.js and manifest.json into that folder.
  3. Reload Obsidian.
  4. Open Settings → Community plugins and enable Tree Obs.

Version 0.1.0 has no styles.css file.

Quick start

  1. In Tree Chat, open Harvest, then choose Export Markdown. The exported Markdown already contains Tree Obs node markers.
  2. Put the exported .md file anywhere in your Obsidian vault.
  3. Tree Obs currently displays its command labels in Chinese. Open the file and run 转换当前文件为树状笔记 (Convert current file to tree notes) from the command palette, or right-click the file and choose 转换为树状笔记 (tree-obs) (Convert to tree notes (tree-obs)).
  4. Tree Obs writes one .md file per node to the configured output location. The default location is beside the source file.
  5. Open Obsidian's Graph view to inspect the parent-child links.

Input marker format

Current Tree Chat Markdown exports created through Harvest → Export Markdown include these markers. Add them by hand only when you use an older export or another compatible Markdown file.

Each marker occupies its own line and describes the content immediately above it:

我们来系统聊聊机器学习。整体上可以分成几大范式,
每个范式再往下展开具体模型。

<!-- node: 机器学习漫谈 -->

监督学习:给模型带标签的数据,学习输入到输出的映射。
最常见的任务是分类和回归。

<!-- node: 监督学习 | parent: 机器学习漫谈 -->

A root marker omits parent:

<!-- node: Root name -->

A child marker names its parent:

<!-- node: Child name | parent: Root name -->

The document must contain exactly one root. Node names must be unique. Markers inside fenced code blocks remain ordinary content. See FORMAT.md for the parser rules and the sample export for a complete input file. The 插入节点标记 (Insert node marker) command can insert a marker template for legacy or compatible Markdown.

Output example

The complete sample from which the excerpt above was taken produces a flat folder of node notes:

机器学习漫谈/
├── 机器学习漫谈.md   (root; links to 监督学习 and 强化学习)
├── 监督学习.md        (parent: 机器学习漫谈; child: 线性回归)
├── 强化学习.md        (parent: 机器学习漫谈)
└── 线性回归.md        (parent: 监督学习)

监督学习.md contains:

# 监督学习

监督学习:给模型带标签的数据,学习输入到输出的映射。
最常见的任务是分类和回归。

---
⬆ 父节点: [[机器学习漫谈]]
⬇ 子节点: [[线性回归]]

Tree Obs writes relationship links in the footer rather than in frontmatter.

Safety and overwrite behavior

Tree Obs checks the tree structure and all planned target paths before it writes to the vault. A missing root, multiple roots, duplicate node name, self-parent, or cycle stops conversion. An unknown parent creates an orphan note and a warning.

When the target folder already exists, the Existing target folder setting controls the result:

Policy Behavior
ask (default) Ask before writing into the existing folder. Canceling leaves it unchanged.
merge Write without prompting.
abort Skip the conversion.

Both ask (after confirmation) and merge create missing planned notes and overwrite .md targets whose names match exactly. Tree Obs leaves unrelated files untouched and does not delete files.

Tree Obs refuses to write when a generated path would overwrite the source file, when a case-only filename conflict exists, or when a planned .md path is occupied by a folder or another non-file entry. It also refuses to treat an existing file as the target folder.

The write phase processes files one at a time and is not transactional. If an exception interrupts the write phase, files created or updated before the exception remain in the vault. Tree Obs reports how many files it wrote before the interruption.

Privacy

Tree Obs conversion sends no network requests. The plugin contains no telemetry, account system, or paid service. It reads the selected Markdown inside Obsidian and writes generated Markdown notes to the vault.

This privacy statement covers Tree Obs conversion only. It makes no claim about Tree Chat, Obsidian Sync, other plugins, or other services.

Settings

Tree Obs provides two settings:

  • Output location: source file folder (default), vault root, or a custom path relative to the vault root.
  • Existing target folder: ask (default), merge, or abort. The policies use the overwrite rules above.

Compatibility and limitations

  • Tree Obs 0.1.0 requires Obsidian 1.4.0 or later. Its manifest allows desktop and mobile use, but version 0.1.0 has not been verified on a physical mobile device.
  • Tree Obs accepts marked Markdown. It does not import JSON.
  • It reconstructs parent-child relationships and Wikilinks. It does not restore Tree Chat node IDs, 3D layers, Rings history, Nutrients, semantic cards, attachments, or complete project metadata.
  • It does not copy attachments referenced by the source Markdown.
  • It does not synchronize later changes between Tree Chat and Obsidian. Run the conversion again when you want to refresh generated notes.
  • Node names must be unique. Tree Obs replaces filename and Wikilink-unsafe characters and resolves sanitized-name collisions with numeric suffixes.

Development

npm ci
npm run dev
npm run build
npm test
npm run lint
  • npm run dev rebuilds main.js when source files change.
  • npm run build runs the TypeScript check and creates a production main.js.
  • npm test runs the Vitest suite.

Source layout:

  • src/markerFormat.ts: marker parsing and rendering.
  • src/parser.ts: document splitting and fenced-code protection.
  • src/tree.ts: tree construction and validation.
  • src/generate.ts: output names, content, and Wikilinks.
  • src/writeSafety.ts: exact-name and case-conflict checks for writes.
  • src/main.ts: Obsidian commands, settings, notices, and vault writes.

License

MIT © 2026 KANYE-Shen

HealthExcellent
ReviewSatisfactory
About
Convert a Tree Chat or manually marked Tree Chat–style Markdown export into one Obsidian note per node and link parent and child notes with wikilinks. Write generated notes into a folder named after the root node and keep the original export file untouched.
ImportLinksFolders
Details
Current version
0.1.0
Last updated
Last month
Created
2 months ago
Updates
1 release
Downloads
35
Compatible with
Obsidian 1.4.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
YuyangYuyangkanye-shen
GitHubkanye-shen
  1. Community
  2. Plugins
  3. Import
  4. Tree Obs

Related plugins

Waypoint

Easily generate dynamic MOCs in your folder notes using waypoints. Enables folders to show up in the graph view and removes the need for messy tags!

Importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Advanced URI

Control everything with URI.

Breadcrumbs

Visualise the hierarchy of your vault using a breadcrumb trail or matrix view.

Supercharged Links

Add attributes to internal links with the values of target note's frontmatter attributes.

Find orphaned files and broken links

Find files that are not linked anywhere and would otherwise be lost in your vault. In other words: files with no backlinks.

Consistent Attachments and Links

Move note attachments and update links automatically.

Folder notes

Create notes within folders that can be accessed without collapsing the folder, similar to the functionality offered in Notion.