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

Not Submodules

DanDan77 downloads

Replace git submodules with plain nested git repos, ignored via .gitignore and tracked via folder-note frontmatter.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

An Obsidian plugin that replaces git submodules with plain nested git repos - ignored via .gitignore and tracked with a simple YAML frontmatter convention on folder notes, instead of .gitmodules.

Submodules are brittle, especially on mobile and when using Obsidian with iOS through terminal emulators such as iSH. This plugin avoids them entirely: nested repos are just ordinary git repositories living inside your vault, ignored by the vault's own repo, and declared in your notes so they're easy to find, clone, and sync.

How it works

  • A nested repo lives in a folder named <repo-name>-git-repo.

  • The vault's .gitignore gets a *-git-repo/ line so nested repos are never tracked by the vault's own git history.

  • A "folder note" (a markdown file with the same name as its parent folder - matching the folder-notes plugin's insideFolder convention) declares the repos that live under it via a git_repos frontmatter key:

    ---
    git_repos:
      - https://github.com/danrfletcher/obsidian-inline-agents.git
      - https://github.com/danrfletcher/obsidian-not-submodules.git
    ---
    

Features

  • Initialise git repo - one-click git init for the vault itself, if it isn't a git repository yet.
  • Ignore nested repos - one-click append of *-git-repo/ to the vault's .gitignore (creating it if needed).
  • Nested git repos list - every registered repo, with Clone / Pull / Push controls, right in Settings.
  • Bulk actions - "Clone all missing", "Pull all", and "Push all", each hidden automatically when there's nothing for it to do.
  • Register a repo - point the plugin at an existing -git-repo folder (with an autocomplete path picker) and it declares it in the right folder note automatically, creating the folder note - and, if the repo sits at the vault root, a dedicated parent folder for it - when needed.
  • Command palette & ribbon icon - register the repo containing your current file without leaving it.
  • Reveal in navigator - click a repo's name in the list to reveal it (or, if it isn't cloned yet, its parent folder) in the file explorer.

Installation

This plugin is desktop-only (isDesktopOnly: true), since it shells out to your local git.

Manual installation: copy main.js, manifest.json, and styles.css from a release into <your-vault>/.obsidian/plugins/not-submodules/, then enable it in Obsidian's Community plugins settings.

Development

npm install
npm run dev     # watch build
npm run build   # type-check + production build

License

MIT

HealthExcellent
ReviewCaution
About
Replace git submodules with plain nested git repositories declared via YAML frontmatter in folder notes and ignored by a *-git-repo/ .gitignore entry. Manage all nested repos from a single list with Clone, Pull, Push and bulk actions, and register or reveal repos directly from files or the ribbon.
GitSyncing
Details
Current version
1.0.3
Last updated
2 weeks ago
Created
3 weeks ago
Updates
5 releases
Downloads
77
Compatible with
Obsidian 1.7.2+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
DanDandanrfletcher
GitHubdanrfletcher
  1. Community
  2. Plugins
  3. Git
  4. Not Submodules

Related plugins

GitHub

GitHub Sync

Sync vault to personal GitHub.

GitHub

Git Sync

Sync your vault across all devices using your own GitHub account. Free forever.

Git File Sync

Both mobile and desktop. Selectively sync the notes you choose—not your whole vault—with GitHub, GitLab, or Gitea. No local Git repository required.

Direct Git Sync

Sync your vault natively with a GitHub repository on both Desktop and Mobile.

Halyard Sync

Sync your vault with a git repository (GitHub, GitLab, Bitbucket, Gitea/Forgejo, Azure DevOps, or any HTTPS host) on desktop and mobile. No native git required.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Git

Integrate Git version control with automatic backup and other advanced features.

Google Drive Sync

Syncs a vault into Google Drive for cross-platform use (works for iOS).

YAOS

Simple real-time sync powered by your own Cloudflare Worker.