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

Python Panel

Dwight IvanyDwight Ivany137 downloads

Run Python scripts from a sidebar

Add to Obsidian
Python Panel screenshot
  • Overview
  • Scorecard
  • Updates14

An Obsidian plugin that adds a sidebar panel of buttons for running Python scripts located in your vault.

Features

  • Sidebar panel — opens automatically on startup, with one button per configured script
  • Script buttons — click a button to run the corresponding Python script; the button shows a running state while the script executes
  • Status feedback — success/error notices after each run, including a Done. ... summary line if the script prints one
  • Separators and group labels — organize buttons with horizontal rules or --- Group Name headings
  • Auto Python detection — finds Python automatically (tries python3, python, then py)
  • Selection scripts — scripts named reflow_prose_selection.py (or reflow-prose-selection.py) receive the current editor selection and replace it with the script output
  • Commands — Open sidebar and Open latest weekly note
  • Settings tab — add, edit, reorder, and remove scripts and separators

Requirements

  • Obsidian 1.13.0 or later (desktop only — the plugin launches Python as a child process, which the mobile app does not support)
  • Python 3.x installed and available on PATH

Installation

Download main.js, manifest.json, and styles.css from the latest release and copy them into your vault's plugin folder:

<your vault>/.obsidian/plugins/python-panel/

Create the python-panel folder if it doesn't exist. Then enable the plugin:

  1. Go to Settings → Community plugins
  2. Find Python Panel and enable it
  3. The sidebar opens automatically; reopen it any time with the calendar-clock ribbon icon or the Open Python Panel command

Configuration

Go to Settings → Python Panel to add, edit, reorder, and remove scripts. Script paths are relative to your vault root.

Separators

Use separators to visually group scripts in the sidebar:

  • Click Add Separator in settings to insert a divider
  • Plain --- renders as a horizontal line
  • Edit the text to --- Group Name to render a labeled group heading
  • Use the up/down arrow buttons to reorder separators alongside scripts

Separator entries are stored right in the scripts list, so you can also edit data.json directly:

"scripts": [
  "software/python/obsidian-scripts/script-a.py",
  "--- Review",
  "software/python/obsidian-scripts/script-b.py",
  "---",
  "software/python/obsidian-scripts/script-c.py"
]

Usage

  1. Open the Python Panel sidebar (calendar-clock ribbon icon, or the Open Python Panel command)
  2. Click a script button to run it
  3. Wait for the script to complete (the button shows a running state)
  4. Check the status message / notice for success or error feedback

Scripts run with the vault root as the working directory. The active note's absolute path is passed to the script in the OBSIDIAN_ACTIVE_FILE environment variable.

Selection scripts

For reflow-style tools (e.g. reflow_prose_selection.py), select text in the open note first, then click the button. The plugin passes the selection to Python and replaces it in the editor — no clipboard shortcuts involved. The selection is passed via the OBSIDIAN_SELECTION_IN / OBSIDIAN_SELECTION_OUT file paths in the environment.

Building from source

With Node.js installed:

npm install
npm run build        # writes main.js to this folder (repo root)

For development with watch mode:

npm run dev

On Windows without Node/npm, use the standalone build script (downloads tools/esbuild.exe on first run):

.\build.ps1

The script builds main.js in the repo root and copies main.js, manifest.json, and styles.css into ../../../.obsidian/plugins/python-panel (relative to this folder), ready to reload in Obsidian.

License

Apache License 2.0

HealthExcellent
ReviewSatisfactory
About
Run Python scripts from a sidebar panel with one-click buttons that show running state and success/error feedback. Group buttons with separators, pass the current editor selection to specially named scripts, and auto-detect Python. Use on Obsidian desktop only.
AutomationSidebar
Details
Current version
1.1.3
Last updated
7 days ago
Created
7 days ago
Updates
14 releases
Downloads
137
Compatible with
Obsidian 1.13.0+
Platforms
Desktop only
License
Apache-2.0
Report bugRequest featureReport plugin
Author
Dwight IvanyDwight Ivanydwight-ivany
www.acareability.com/
GitHubdwightivany
playlist
  1. Community
  2. Plugins
  3. Automation
  4. Python Panel

Related plugins

Hide Sidebars on Window Resize

Automatically hides the sidebars when your window is narrow on window resize.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Homepage

Open a note, base, or workspace on startup, or set it for quick access later.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

BRAT

Easily install a beta version of a plugin for testing.

Advanced URI

Control everything with URI.

Tag Wrangler

Rename, merge, toggle, and search tags from the tag pane.

QuickAdd

Quickly add new notes or content to your vault.

Lazy Loader

Load plugins with a delay on startup, so that you can get your app startup down into the sub-second loading time.

Hot Reload

Automatically reload in-development plugins when their files are changed