Skip to content

Tech Tree Companion

Build technology trees in Excalidraw with a customizable quick wheel, SVG cards, and linked notes. - This plugin has not been manually reviewed by Obsidian staff.

The above warnings are based on limited information and might not always be accurate.

Data

IDtech-tree-companion
AuthorMu_Alive
Minimum Obsidian Version1.13.7
Official Release Date2026-10-06
Last update2026-10-16

Last Refresh

Obsidian Stats last refreshed the data behind this page on Oct 27, 2026.

Community plugin snapshotOct 26, 2026
Repository clonelast successful checkout Oct 27, 2026
Release acquisitionrelease metadata checked Oct 27, 2026; latest main.js acquired

Quick Links

Changes

DateChanged PropertyOld ValueNew Value
2026-10-06Plugin Added
2026-10-13Plugin Removed
2026-10-13Plugin Re-Added
2026-10-13descriptionCreate and manage SVG cards, templates, connections, and linked note details in Excalidraw. - This plugin has not been manually reviewed by Obsidian staff.Build technology trees in Excalidraw with a customizable quick wheel, SVG cards, and linked notes. - This plugin has not been manually reviewed by Obsidian staff.
2026-10-16Plugin Removed
2026-10-17Plugin Re-Added

Repository Data

LicenseMIT in package.json
MIT in LICENSE file
Package Managernpm
Uses TypescriptNo .ts or .tsx files found
Installed Bundlersesbuild
Installed Testing FrameworksNone found
Has Test FilesNo
Latest Release main.js Size3.14 MB
Detected ES VersionES2022
Probably MinifiedYes
main.js API Findings17 disclosures
Uses BRAT beta releasesNo
Dependencies@codemirror/commands, @codemirror/lang-markdown, @codemirror/state, @codemirror/view, buffer, esbuild, lz-string, markdown-it, roughjs, subset-font
Dev Dependencieseslint, eslint-plugin-obsidianmd, obsidian, stylelint, stylelint-config-obsidianmd

main.js API Findings

These findings come directly from Glass Lint's JavaScript and Obsidian rule catalogs applied to the latest release main.js. The confidence column is Glass Lint's definite/possible match certainty.

DisclosureRule Descriptions
Browser Environment AccessReads browser environment data
Cryptographic OperationsUses cryptographic operations
Full Vault AccessEnumerates vault files
Lifecycle EventsRegisters Obsidian lifecycle events
Markdown ProcessingRenders markdown
Metadata AccessExtracts tags, links, embeds, blocks, or headings, Reads Obsidian metadata cache, Reads cached frontmatter, Registers metadata cache events
Network AccessConstructs or references URLs, References private-network addresses, Uses Obsidian request APIs
Plugin Storage AccessReads plugin data, Writes plugin data
Private Network AccessReferences private-network addresses
Process Or Shell AccessReads Node process environment or platform metadata
User Interface AccessRegisters Obsidian views, Registers commands, Registers plugin settings UI, Registers ribbon icons, Uses Obsidian modal UI, Uses Obsidian notices
Vault AccessAccesses Obsidian vault APIs, Accesses attachment resource paths, Registers vault events
Vault ReadReads vault files
Vault WriteWrites vault files
Worker UsageStarts or loads background JavaScript
Workspace AccessRegisters Obsidian workspace events
Workspace LayoutManages workspace leaves, Opens files through the workspace
FindingTypeConfidenceEvidence
Starts or loads background JavaScriptWarningDefiniteconstructor of "Worker"
Reads browser environment dataInfoDefinitemember_read of "navigator.platform" (2), member_read of "navigator.userAgent" (3)
References private-network addressesInfoDefinitestring_contains of "private network address" (2)
Constructs or references URLsInfoDefinitestring_contains of "http://" (10), string_contains of "https://" (2), member_call of "URL.createObjectURL", member_call of "URL.revokeObjectURL"
Uses cryptographic operationsInfoDefinitemember_call of "crypto.subtle.digest" (3), member_call of "globalThis.crypto.subtle.digest" (3)
Reads Node process environment or platform metadataInfoDefinitemember_read of "process.env" (2)
Registers Obsidian lifecycle eventsInfoDefinitemember_call of "obsidian.Plugin" (8)
Renders markdownInfoDefinitemember_call of "obsidian"
Reads Obsidian metadata cacheInfoDefinitemember_call of "app.metadataCache.getFileCache" (2), member_read of "app.metadataCache" (4), member_call of "app.metadataCache.getFirstLinkpathDest"
Registers metadata cache eventsInfoPossiblemember_call of "app.metadataCache.on"
Extracts tags, links, embeds, blocks, or headingsInfoDefinitemember_read of "app.metadataCache.getFileCache.frontmatter", member_read of "app.metadataCache.getFileCache.headings"
Reads cached frontmatterInfoDefinitemember_read of "app.metadataCache.getFileCache.frontmatter"
Uses Obsidian request APIsInfoDefinitecall of "request", member_call of "obsidian"
Reads plugin dataInfoDefinitemember_call of "obsidian.Plugin"
Writes plugin dataInfoDefinitemember_call of "obsidian.Plugin"
Registers commandsInfoDefinitemember_call of "obsidian.Plugin" (19)
Uses Obsidian modal UIInfoDefiniteclass of "obsidian.Modal" (16)
Uses Obsidian noticesInfoDefiniteconstructor of "obsidian.Notice" (26)
Registers ribbon iconsInfoDefinitemember_call of "obsidian.Plugin"
Registers plugin settings UIInfoDefiniteclass of "obsidian.PluginSettingTab", member_call of "obsidian.Plugin"
Accesses Obsidian vault APIsInfoDefinitemember_read of "app.vault" (20)
Enumerates vault filesInfoDefinitemember_call of "app.vault.getAbstractFileByPath" (3), member_call of "app.vault.getMarkdownFiles"
Registers vault eventsInfoPossiblemember_call of "app.vault.on" (4)
Reads vault filesInfoDefinitemember_call of "app.vault.cachedRead", member_call of "app.vault.read" (5)
Accesses attachment resource pathsInfoDefinitemember_call of "app.vault.getResourcePath"
Writes vault filesInfoDefinitemember_call of "app.vault.process"
Registers Obsidian viewsInfoDefinitemember_call of "obsidian.Plugin"
Registers Obsidian workspace eventsInfoPossiblemember_call of "app.workspace.on" (4)
Manages workspace leavesInfoDefinitemember_call of "app.workspace.getLeaf" (2), member_call of "app.workspace.revealLeaf" (2), member_call of "app.workspace.setActiveLeaf" (2), member_call of "app.workspace.getLeavesOfType" (6)
Opens files through the workspaceInfoDefinitemember_call of "app.workspace.getLeaf.openFile", member_call of "app.workspace.openLinkText"

The above data may not be accurate and contain errors. For more information refer to the page about data collection.

Lines of Code

The plugin has a total of 4206 lines of code. The following chart shows the lines of code split by programming language.

Downloads

The following chart shows the total number of downloads of the plugin over time. The second chart shows the delta of downloads per week, which is the number of new downloads per week. New version releases are marked with vertical lines.

Version History

VersionRelease DateNote
0.4.262026-10-07None
0.4.272026-10-07None
0.4.292026-10-08None
0.4.302026-10-08None
0.4.312026-10-13None
0.4.322026-10-14None
0.4.332026-10-15None
0.4.342026-10-18None