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

CodeScript Toolkit

Michael NaumovMichael Naumov17k downloads

Allows to do a lot of things with JavaScript/TypeScript scripts from inside the Obsidian itself

Add to Obsidian
CodeScript Toolkit screenshot
  • Overview
  • Scorecard
  • Updates183

formerly known as Fix Require Modules, see Rebranding section for more details

This is a plugin for Obsidian that allows to do a lot of things with JavaScript/TypeScript scripts from inside the Obsidian itself.

Who is this plugin for?

This plugin is for you if you want to:

  • Write in any flavor of JavaScript/TypeScript in:
    • DevTools Console within Obsidian;
    • CustomJS scripts;
    • datacorejs / datacorejsx / datacorets / datacoretsx scripts;
    • dataviewjs scripts;
    • JS Engine scripts;
    • Modules scripts;
    • QuickAdd scripts;
    • Templater scripts;
    • etc.
  • Write modular scripts using modern JavaScript/TypeScript syntax and patterns.
  • Prototype Obsidian plugins.
  • Explore Obsidian API (public and internal) in runtime easier.
  • Invoke any JavaScript/TypeScript script via command or hotkey.

Why this plugin?

There are several very good plugins that allow to write JavaScript/TypeScript scripts for Obsidian, but they all have their own limitations and quirks.

Most of those plugins support writing scripts in CommonJS (cjs) only, which is not so used nowadays.

None of those plugins provide you the developer experience as you would have in any other modern JavaScript/TypeScript development environment.

This plugin aims to erase the line between the Obsidian world and the JavaScript/TypeScript development world.

Usage

The documentation is a demo vault. Every feature has a note that explains what it does and why you would want it, followed by a button that runs it for real — so you can read the explanation and execute the example in the same place.

Start reading here — it works as plain markdown on GitHub, no installation needed.

To open it in Obsidian and actually click the buttons, use any of:

  1. Running the CodeScript Toolkit: Open demo vault command.
  2. Downloading fix-require-modules-demo-vault-<version>.zip (<version> is the release version) from the Releases.
  3. Cloning this repository and opening demo-vault/ as a vault.

If you are not sure where to start, three notes cover most of it: Core functions (which of require() / requireAsync() / requireAsyncWrapper() to use), Code buttons (runnable snippets inside a note), and Invocable scripts (turning a script into an Obsidian command).

Installation

The plugin is available in the official Community Plugins repository.

Beta versions

To install the latest beta release of this plugin (regardless if it is available in the official Community Plugins repository or not), follow these steps:

  1. Ensure you have the BRAT plugin installed and enabled.
  2. Click Install via BRAT.
  3. An Obsidian pop-up window should appear. In the window, click the Add plugin button once and wait a few seconds for the plugin to install.

Debugging

By default, debug messages for this plugin are hidden.

To show them, run the following command:

window.DEBUG.enable('fix-require-modules');

For more details, refer to the Obsidian Dev Utils debugging guide.

Rebranding

This plugin was formerly known as Fix Require Modules.

The plugin quickly overgrew its original purpose and got way more features than just fixing require() calls. That's why it got a new name.

However, for the backward compatibility, the previous id fix-require-modules is still used internally and you might find it

  • in plugin folder name;
  • in plugin URL;
  • in Debugging section;

Support

My other Obsidian resources

See my other Obsidian resources.

License

© Michael Naumov

HealthExcellent
ReviewCaution
About
Write and run JavaScript or TypeScript scripts across Obsidian (DevTools, CustomJS, dataviewjs, QuickAdd, Templater, JS Engine and module scripts) using modern ESM and modular patterns. Prototype Obsidian plugins, explore the Obsidian API at runtime, and invoke scripts via commands or hotkeys.
CodeDevelopersCommands
Details
Current version
13.6.0
Last updated
Yesterday
Created
3 years ago
Updates
183 releases
Downloads
17k
Compatible with
Obsidian 1.13.4+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
Michael NaumovMichael Naumovmnaoumov
mnaoumov.dev/
GitHubmnaoumov
Xmnaoumov
  1. Community
  2. Plugins
  3. Code
  4. CodeScript Toolkit

Related plugins

Lean Terminal

Embedded terminal panel powered by xterm.js and node-pty - no external windows.

CustomJS

Reuse custom JavaScript across desktop and mobile.

Notice logger

Logs all notices to the developer console, with optional prefix.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

BRAT

Easily install a beta version of a plugin for testing.

Local REST API with MCP

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

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.

Quick Switcher++

Enhanced Quick Switcher, search open panels, and symbols.

Git

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

Hot Reload

Automatically reload in-development plugins when their files are changed