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

Attachments Cache

luisbsluisbs696 downloads

Store images and other attachments on the vault

Add to Obsidian
  • Overview
  • Scorecard
  • Updates11

If you search help about the Settings you can check the documentation.

Summary

This plugin for Obsidian, stores remote attachments (currently only images) locally inside the vault.

The note is not modified by default, this way even outside of the vault the attachments keep working with the remotes URL.

Note: The attachments can be "archived" instead, which makes the note reference the local file, check Update attachment link?.

When the attachment is rendered in a note, the local version is used instead of the remote working as a local cache.

Note: The cached attachments can be deleted any time to free up disk space.

In detail, during the Obsidian render process, when an img is found:

  1. The plugin checks if the image is cached/should be cached.
  2. Download the image into a vault folder if is not cached.
  3. Modify the img element to use the cached file inside the vault.

Features

  • Exposed API for thrid-party integration.
  • Whitelist/blacklist vault vault paths to perform caching.
  • Whitelist/blacklist vault remote URLs to perform caching.
  • For listed Vault paths define where to store the attachments.
  • Allows override of rules on individual notes or remotes.

Supported attachments file-formats

Based on the Obsidian supported file-formats the next attachments formats are been cached:

  • Images: .avif, .bmp, .gif, .jpeg, .jpg, .png, .svg, .webp
  • Audio: .flac, .m4a, .mp3, .ogg, .wav, .webm, .3gp
  • Video: .mkv, .mov, .mp4, .ogv, .webm
  • PDF: .pdf

Instalation

From within Obsidian

You can activate this plugin within Obsidian by doing the following:

  • Open Settings > Third-party plugin
  • Make sure Safe mode is off
  • Click Browse community plugins
  • Search for "Attachments Cache"
  • Click Install
  • Once installed, enable the plugin
  • Then select "Attachments Cache" settings
  • Configure the vault paths and URL remotes that should be cached

From source

You can activate this plugin, building from source by doing the following:

  • Clone the repository
  • Install the dependencies
  • Run pnpm build:dist or an equivalent.
  • Copy the content of the repository dist folder to your vault, the path should look like <path-to-your-vault>/.obsidian/plugins/attachments-cache
  • Open your vault in Obsidian and activate the newly installed plugin

Pricing

This plugin is provided to everyone for free, however if you would like to say thanks or help support continued development, feel free to send a little through the following method:

Notes

The plugin is not on active development, new features or changes are developed when there is an oportunity. But issues and bugs will have especial priority.

Thrid-party Integration

An API AttachmentsCache is exposed globally for easy integration.

For usage inside a plugin the methods isPluginEnabled and getAPI are exposed from an npm package named @luis.bs/obsidian-attachments-cache

pnpm add @luis.bs/obsidian-attachments-cache

On other environments where the package can not be used as a dependency, the API is attach to the global window object. The next declare can be used for development:

declare namespace AttachmentsCache {
    /** Determine whether the attachment matches a **short-term** storage rule. */
    isCacheable(remote: string, notepath: string, frontmatter?: unknown): boolean
    /** Determine whether the attachment matches a **long-term** storage rule. */
    isArchivable(remote: string, notepath: string, frontmatter?: unknown): boolean
    /** Download the attachment and get the localpath. */
    cache(remote: string, notepath: string, frontmatter?: unknown): Promise<string | undefined>
    /** Download the attachment, update the reference on the note and get the localpath. */
    archive(remote: string, notepath: string, frontmatter?: unknown): Promise<string | undefined>
}

Troubleshooting

An image rendered by another plugin is not been cached?

Plugins use Markdown post processing to change the rendered view of the note.

By default any image rendered by a plugin may be cached, dependening on the Cache priority.

But if the plugin uses async functions the order defined by Cache priority is not enforced, in that situations this plugin runs before the thrid-party plugin has ended and the added images avoid been cached.

To prevent that situation on 'NORMAL' priority 2 second is awaited before the cache is executed. On 'HIGHER' priority 10 seconds are awaited.

64%
HealthGood
ReviewRisks
About
Store remote attachments (images, audio, video, PDFs) locally in your vault and serve cached files during note rendering to replace remote URLs. Cache selectively with path and URL whitelist/blacklist, expose an API for integrations, and archive files to rewrite links to local copies.
AttachmentsFilesIntegrations
Details
Current version
0.7.0
Last updated
6 months ago
Created
Last year
Updates
11 releases
Downloads
696
Compatible with
Obsidian 1.9.14+
Platforms
Desktop, Mobile
License
GPL-3.0
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
luisbsluisbs
github.com/luisbs
GitHubluisbs
  1. Community
  2. Plugins
  3. Attachments
  4. Attachments Cache

Related plugins

Local REST API & MCP Server

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

Image auto upload

Upload images from your clipboard by PicGo.

WebDAV Sync

General-purpose & bidirectional WebDAV syncing for your vault. Designed for stability and robust file handling without vendor lock-in.

Google Drive Sync

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

Notebook Navigator

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

QuickAdd

Quickly add new notes or content to your vault.

Recent Files

Display a list of recently opened files.

Omnisearch

Intelligent search for your notes, PDFs, and OCR for images.

Claudian

Embeds Claude Code/Codex as an AI collaborator in your vault. Your vault becomes agent's working directory, giving it full agentic capabilities: file read/write, search, bash commands, and multi-step workflows.

BRAT

Easily install a beta version of a plugin for testing.