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

Nixsync

rowmaynerowmayne25 downloads

Export and import vault settings and plugins as Nix.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates1

Export and import vault settings and plugins as Nix.

What it does

Export dumps your Obsidian config to a single .nix file:

# obsidian.nix
{
  config = {
    app = { ... };
    appearance = { ... };
    hotkeys = { ... };
  };

  plugins = {
    dataview = {
      manifest = { ... };
      settings = { ... };
    };
  };
}

Import reads that file back and writes config + plugin settings to .obsidian/.

Usage

Open command palette:

  • Export settings as Nix file - writes obsidian.nix to vault root
  • Import settings from Nix file - pick a .nix file, applies settings (reload Obsidian after)

Settings

Setting Default Description
Export file name obsidian.nix Output file name
Open after export on Opens exported file in Obsidian
App config on app.json - editor, default view
Appearance on appearance.json - theme, font, accent
Core plugins on core-plugins.json - enabled built-ins
Graph settings on graph.json
Workspace on workspace.json - panel layout
Strip ephemeral workspace fields on Removes last-open files, active file, panel state (machine-specific)
Hotkeys on hotkeys.json
Community plugins on Plugin manifests
Plugin settings on Plugin data.json - disable if configs contain secrets
Generate NixOS integration files off Also exports obsidian-activate.sh

NixOS integration

Enable Generate NixOS integration files to also export obsidian-activate.sh.

The script takes the exported .nix file, evaluates it with nix eval --json, and writes config + plugin files to ~/.obsidian/. Requires nix and jq.

bash obsidian-activate.sh /path/to/obsidian.nix

Note: restores settings and plugin data only. Plugin JS files are not included - Obsidian still needs to download plugins itself.

home-manager

home.file.".obsidian-config/export.nix".source = ./dotfiles/obsidian.nix;

home.activation.obsidian-restore = lib.hm.dag.entryAfter ["writeBoundary"] ''
  ${pkgs.bash}/bin/bash ${./dotfiles/obsidian-activate.sh} \
    $HOME/.obsidian-config/export.nix
'';

configuration.nix

system.activationScripts.obsidian-restore = {
  text = ''
    ${pkgs.bash}/bin/bash /etc/obsidian-activate.sh /etc/obsidian.nix
  '';
};

environment.etc."obsidian.nix".source = ./dotfiles/obsidian.nix;
environment.etc."obsidian-activate.sh".source = ./dotfiles/obsidian-activate.sh;

Limitations

The import parser handles literal Nix values only: strings, numbers, booleans, null, arrays, and attribute sets. If you hand-edit the exported .nix file and add Nix-specific syntax — string interpolation (${...}), function calls, let/in expressions, or import — the import command will fail or silently corrupt those values. Keep the file as plain data; use the activation script for evaluated Nix. Feel free to fix this, I do not know when I will get around to this.

Sync workflow

# Machine A - after updating settings
# Command palette → Export settings as Nix file
git add obsidian.nix && git commit -m "chore: update obsidian settings"
git push

# Machine B
git pull
bash obsidian-activate.sh obsidian.nix
# restart Obsidian
97%
HealthExcellent
ReviewPassed
About
Export vault settings and plugin data to a single .nix manifest capturing app, appearance, hotkeys, core and community plugin manifests and settings. Import a .nix file to write config and plugin data into .obsidian/ and restore your setup. Generate an optional NixOS activation script to apply exports system-wide; plugin JS files are not included, so plugins must be installed separately.
BackupExportIntegrations
Details
Current version
1.0.0
Last updated
Last month
Created
Last month
Updates
1 release
Downloads
25
Compatible with
Obsidian 0.15.0+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
rowmaynerowmayne
github.com/rowmayne
GitHubrowmayne
  1. Community
  2. Plugins
  3. Backup
  4. Nixsync

Related plugins

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.

Yanki

Sync flashcards from a folder in your vault to Anki. Pure Markdown syntax. No fuss.

GitHub

Share as Gist

Share a note as a GitHub.com Gist.

Remotely Save

Sync notes between local and cloud with smart conflict: S3, Dropbox, webdav, OneDrive, Google Drive, Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.

Local REST API & MCP Server

Unlock your automation needs by interacting with your notes over a secure REST API.

Git

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

BRAT

Easily install a beta version of a plugin for testing.

Maps

Adds a map layout to bases so you can display notes as an interactive map view.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Zotero Integration

Insert and import citations, bibliographies, notes, and PDF annotations from Zotero.