File Cooker

by iuian
5
4
3
2
1
Score: 59/100

Description

Category: File Management

The File Cooker plugin is a powerful tool for Obsidian users who need to manipulate multiple files at once. With this plugin, you can add or delete tags, aliases, and CSS classes from multiple files with ease. You can also use the Search Results Command to work directly with search results, and even cook up Dataview queries to create new files. The plugin offers a range of cooking options, including moving, copying, renaming, and deleting files, as well as merging files together or creating new ones from unresolved links. Whether you're organizing your notes or creating new content, the File Cooker plugin is sure to streamline your workflow and save you time.

Reviews

No reviews yet.

Stats

65
stars
16,494
downloads
3
forks
1,535
days
195
days
195
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
18
total issues
7
open issues
11
closed issues
4
commits

Latest Version

6 months ago

Changelog

  • 优化弹窗样式(Optimize the popup style)
  • 增加对Bases的支持(Add support for Bases)

README file from

Github

Cook your notes like a chef: pick the ingredients, fire the pan, confirm before it's served ✅

中文文档

File Cooker

File Cooker is an Obsidian plugin for batch file operations. Treat a batch of files (from search results, clipboard, current file links, Dataview / Bases queries …) as ingredients, then run a single command to move, rename, edit properties, delete, merge, sync to flomo, or add to Canvas — like cooking them in one pan.

  • 🧺 Any source: clipboard · current file · search results · Dataview query · Bases query · context menu
  • 🍳 Rich operations: move / rename / edit properties / delete / merge / create / sync to flomo / copy links / add to Canvas
  • 🛡️ Confirm before acting: every operation shows a confirmation modal; destructive ones (delete) are highlighted in red
  • 📱 Mobile friendly: not desktop-only (isDesktopOnly: false)

✨ Features

  • Batch edit properties: add / modify / delete frontmatter properties; tags / alias / cssclasses support comma-separated multi-value edits and - prefix to remove a single value; no MetaEdit plugin needed (built-in since v1.8.0)
  • Batch move / rename: organize selected files into a target folder or rename them in one go
  • Batch merge: merge multiple files into one target file (YAML ignored)
  • Batch create: materialize unresolved links of the current file into real files
  • Sync to flomo: sync file links, file content, or current selection (requires flomoAPI)
  • Copy links: copy Dataview / Bases result links to the clipboard
  • Add to Canvas: batch-add files, text / selection, or Dataview tasks into a target canvas
  • ⭐ Bases integration (new in v2.0.0): run file operations directly on Bases query results
  • ⭐ Context menu (new in v2.0.0): right-click access from editor and file explorer
  • Presentation mode (new in v1.9.0): one-click larger font and wider editor for screen sharing

📸 Screenshot

Demo: search results + clipboard + Dataview query — all sources share the same "Select → Cook → Confirm" flow.

🍳 How it works: Select → Cook → Confirm

  1. Select: pick a batch of files from any supported source
  2. Cook: run the matching operation command
  3. Confirm: review the targets in the confirmation modal, then execute

Supported input sources

Source How to use Notes
📋 Clipboard Copy file links (e.g. search results) first, then run clipboard commands Plain text content can also be added to Canvas
📄 Current file Open a file, then run current-file-link commands Reads links / unresolved links / content / selection
🔍 Search results Open the Obsidian search panel, then run search results commands Operates directly on the results in the panel
📊 Dataview query Select a DQL or DataviewJS query in the editor, then run Dataview commands Requires the Dataview plugin; DataviewJS supported since v1.7.1
🗄️ Bases query Open a Bases view, then run Bases commands New in v2.0.0; only rows mappable to real files are processed
🖱️ Context menu Right-click in the editor or file explorer New in v2.0.0

Supported operations

Operation Example command Notes
📁 Move Move ... to folder Batch move to a target folder
✏️ Rename Rename ... Batch rename
🏷️ Edit properties Edit Properties ... Add / modify / delete frontmatter, multi-value supported
🔑 Rename property Rename property in folder ... Batch rename a property key, values preserved (new in v3.2.0)
🗑️ Delete Delete ... ! Destructive — highlighted red in the confirmation modal
🔗 Merge Merge ... to ... Merge into a target file
🆕 Create Create links ... Create files from unresolved links
📤 Sync to flomo Sync ... to flomo File links / content / selection
📋 Copy links Copy ... links! Copy result links to the clipboard
🖼️ Add to Canvas Add ... to canvas Files / text / tasks

Bases integration (new in v2.0.0)

When a Bases data source is available, File Cooker provides a Bases command group aligned with the Dataview file commands (move / rename / edit properties / delete / merge / sync to flomo / copy links / add to canvas / add task).

Behavior boundaries:

  • File-only mapping: only rows that can be mapped to real vault files are processed
  • Ignore non-file rows: unmapped rows are skipped, and a notice reports the ignored count
  • No row writes: File Cooker does not modify Bases row fields in this flow

Context menu (new in v2.0.0)

  • Editor context menu:
    • File Cooker > Selection: sync the selection to flomo / add it to a canvas (only when a selection exists)
    • File Cooker > Current file links: run link-based batch operations from the current file
  • File explorer context menu:
    • File Cooker > Target file: rename / edit properties / delete the right-clicked file
    • File Cooker > Target folder (new in v3.2.0): batch edit properties / rename a property key across all notes in the right-clicked folder (including subfolders)

Notes: destructive actions (like delete) still require confirmation. If no active file exists, current-file-link operations are safely blocked with a notice.

🛟 Backup & Undo (new)

Every batch write operation — edit properties / move / rename / delete / merge / create — now takes a snapshot before applying, so you can undo a whole batch or revert selected files individually afterwards.

  • Automatic snapshots: applied operations create a persistent backup record (content + paths); canceled or failed operations leave no residue
  • Undo history: Undo last batch operation ... opens history and focuses the most recent record; Open backup & undo history ... lists all records (time / type / file count / status)
  • Per-file revert: expand a record, check the files you want to restore, and revert — move/rename are reversed via Obsidian's rename (links auto-updated), deletes are rebuilt from the snapshot, created/copied files are trashed
  • Drift protection: if a file was modified after the operation, it is marked modified and disabled — enable force override to overwrite it explicitly; nothing is ever silently overwritten
  • Retention: keeps the most recent N records (default 20) and cleans up older backups automatically

Backup folder: backups are stored inside your vault (default .file-cooker/backups). The dot prefix hides it from the file explorer by default; you can also add it to Settings → Files and links → Excluded files (e.g. .file-cooker) to keep it out of search and graph. Out of scope: Canvas operations and flomo sync are not backed up (they write through internal APIs / the network and don't touch vault files).

🤖 AI (experimental, new)

AI can infer frontmatter properties (tags / aliases / custom scalar properties) from note content, propose values for your review, and apply them in batch after your confirmation.

  • Any source: trigger from clipboard / current file links / search results / Dataview / Bases results, or right-click a single file
  • Proposal first: nothing is written before you review; edit or uncheck any proposal
  • Multi-value merge: tags / aliases are merged into existing values (no overwrite); scalar properties are only written when absent (override toggle available)
  • Undoable: applied AI writes create backup records, revertable from backup history like any other batch operation
  • Opt-in & private: AI is disabled by default; the confirmation dialog always states exactly what will be sent (file name + first N characters, configurable)
  • OpenAI-compatible providers: works with DeepSeek / Kimi / GLM / OpenRouter / Ollama (local) — anything speaking the OpenAI Chat API

Setup: Settings → File Cooker → AI (experimental) → enable, fill in base URL / model / API key. AI commands are blocked with a notice until configured.

🍳 Workbench: one entry for query → confirm → execute (new)

The command Open File Cooker workbench ... (also on the sidebar ribbon) opens a 3-step wizard:

  1. Query — pick any source: AI-generated queries (one sentence → DQL / search / Bases), handwritten DQL / search / Bases (with syntax check), or the classic sources (search panel results / clipboard / current file links)
  2. Confirm — review the matched file list (batch limit truncation is shown)
  3. Execute — pick an operation from the grouped catalog (edit properties / AI completion / move / merge / canvas / rename / delete); every write still goes through its confirmation dialog with backup & undo

Step navigation preserves everything you typed. Existing commands keep working as shortcuts.

Scripts you already have can be imported: 从笔记导入… fills the DQL / search / Bases editor from a picked note's ```dataview / ```query code block or a saved .base file, then runs a syntax check automatically.

🗣️ Find files with natural language (new)

Type a sentence like "last year's unfinished reading notes" — the AI compiles it into DQL, Obsidian search syntax, and Bases filters (all three, locally & deterministically), previews them side by side, and after your approval runs the one you pick. Matching files go straight into File Cooker's batch pipeline (edit properties / move / rename / delete / canvas / flomo) with full backup & undo.

  • One input, three query languages (DQL requires the Dataview plugin)
  • Query text is editable before running; Bases can be saved as a .base file
  • Read-only until you dispatch results to a batch operation
  • Sends only your sentence + vault metadata (tag/property/folder lists), never note bodies

⚙️ Settings

Setting Purpose Default
Interface language UI language for dialogs, notices and settings: Auto follows the Obsidian interface language (English for non-Chinese, 中文 for zh), or force Chinese/English Auto
Limit Maximum number of files processed per batch 300
flomoAPI flomo API endpoint, used to sync notes to flomo empty
Enable backup Create a snapshot for every batch write so it can be reverted on
Backup folder Vault folder where backups are stored (dot-prefix hides it) .file-cooker/backups
Retention Number of recent backup records to keep 20
AI (experimental) Enable AI property completion; base URL / model / API key / batch params / inference options off

flomo sync commands will notify "Please config flomoAPI first!" when the API is not configured.

📦 Installation

  1. Settings → Third-party plugin → turn off Safe mode
  2. Click Browse, search for File Cooker
  3. Click Install, then enable the plugin

Method 2: Manual installation

  1. Download the latest release
  2. Extract the obsidian-file-cooker folder into <vault>/.obsidian/plugins/

    Note: on some machines the .obsidian folder is hidden. On macOS press Command+Shift+Dot to reveal it.

  3. Reload Obsidian and enable the plugin in Settings

Requirements

  • Obsidian ≥ 1.12.3 (since v2.0.0)
  • Dataview plugin: only needed for the "Dataview query" source
  • flomoAPI: only needed for "Sync to flomo" commands
  • Everything else works out of the box with no extra dependencies

🛡️ Safety & limits

  • Always confirm: every command opens a confirmation modal before any change is made
  • Delete is highlighted: delete commands are marked in red in the confirmation modal
  • Backup before apply: every batch write takes a snapshot first and can be reverted from history; drifted (mid-edited) files are never silently overwritten
  • Batch limit: a single batch is limited to 300 files by default (adjustable in Settings)
  • Visible failures: no files, no active file, missing config, etc. are always reported via Notice — never silently

💬 Feedback & support

Questions or suggestions? Feel free to add me on WeChat: IvyOdds, or open an issue on GitHub Issues.

If File Cooker helps you, please share it with your Obsidian friends 🙏

📜 License

  • MIT License — see LICENSE
  • Issues and pull requests are welcome

📝 Changelog

2.2.0

  • New Backup & Undo: every batch write (properties / move / rename / delete / merge / create) is snapshotted and can be reverted per-file from history; drift detection prevents silent overwrites
  • New settings: backup toggle, backup folder, retention

2.0.0

  • New Bases query source for batch file operations (file-only rows; no Bases field writes)
  • New context menu entries (editor: selection / current file links; file explorer: target file)
  • Upgraded Obsidian dependency to 1.12.3

1.9.0

  • New presentation mode: one-click larger font and wider editor for screen sharing

1.8.1

  • Multi-value property editing: tags / alias / cssclasses batch add/remove via comma-separated values

1.8.0

  • Built-in batch property editing — no MetaEdit plugin required

1.7.8

  • New search results commands, operate directly on the search panel results

1.7.7

  • Add Dataview tasks to Canvas

1.7.6

  • Add text to Canvas

1.7.1

  • Support DataviewJS page queries

1.7.0

  • Batch-add files to Canvas

1.0 ~ 1.6

  • Core capabilities: move, rename, merge, delete, create from unresolved links, sync to flomo, copy links

☕ Buy me a coffee

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Get Info
5 years ago by Chetachi
A small menu that is tucked inside your status bar and shows helpful information for your chosen file 📄.
Local File Interface
5 years ago by qawatake
An Obsidian plugin to provide commands for moving files in and out of the vault
Remember File State
5 years ago by Ludovic Chabant
A plugin for Obsidian that remembers cursor position, selection, scrolling, and more for each file.
File Cleaner
5 years ago by Johnson0907
A file cleaner plugin for Obsidian.
Nuke Orphans
4 years ago by Sandorex
Obsidian notes plugin that trashes orphaned files and attachments
Bellboy
4 years ago by Shaked Lokits
Opinionated file structure manager for the Obsidian knowledge base.
Redirect
4 years ago by Jacob Levernier
An Obsidian plugin for adding aliases to any file
Metadata Menu
4 years ago by mdelobelle
For data management enthusiasts : type and manage the metadata of your notes.
Janitor
4 years ago by Gabriele Cannata
Performs various maintenance tasks on the Obsidian vault
Edit Gemini
4 years ago by Basil_Mori
Emo
4 years ago by yaleiyale
Use image/file hosting in Obsidian by clipboard or draging file. Obsidian 图床聚合 & Github上传器
Aggregator
4 years ago by SErAphLi
This plugin helps you gather information from files, and make a summary in the file.
Review Notes Plugin
4 years ago by tjandy98
File Color
4 years ago by ecustic
An Obsidian plugin for setting colors on folders and files in the file tree.
Weekly Review
4 years ago by Brandon Boswell
🪝 Grappling Hook
4 years ago by pseudometa
Obsidian Plugin for blazingly fast file switching. For those who find the Quick Switcher still too slow.
Open files with commands
4 years ago by Lost Paul
Create commands that only open one file at the time and that can be used with the commander plugin.
Home tab
4 years ago by Renso
A browser-like search tab for your local files in Obsidian.
Open In New Tab
4 years ago by patleeman
File Diff
3 years ago by Till Friebe
View the difference between two files within Obsidian.
Git Url
3 years ago by khuongduy354
Ruled template
3 years ago by YPetremann
An obsidian plugin that check rules to select which template to use.
SyncFTP
3 years ago by Alex Donnan
An Obsidian.md plugin that allows users to add their own SFTP host and credentials to sync to and from.
Easy Bake
3 years ago by mgmeyers
Compile many Obsidian notes down to one.
Tags Overview
3 years ago by Christian Wannerstedt
Obsidian plugin which adds an extended tags panel where tagged files can be overviewed, filtered and accessed in an easy way.
File Tree Generator
3 years ago by Unarray
An Obsidian extension to generate a file tree using callouts!
Sort Frontmatter
3 years ago by Kanzi
Sort frontmatter automatically
Incomplete files
3 years ago by Hananoshika Yomaru
Rule based incomplete files discovery
Neighbouring Files
3 years ago by Fabian Untermoser
Obsidian Plugin to navigate to the next and previous file in the current directory
Image Collector
3 years ago by tdaykin
Confluence Link
2 years ago by Razvan Bunga
Convert obsidian md file into confluence pages
Structured Tree
2 years ago by Marius Svarverud
A file explorer for navigating hierarchical notes separated by '.'
Find orphaned files and broken links
6 years ago by Vinzent
Find files, which are nowhere linked, so they are maybe lost in your vault.
Automatically reveal active file
6 years ago by Matt Sessions
Obsidian plugin to reveal the active file automatically when you open a file
Checklist
6 years ago by delashum
File path to URI
6 years ago by Michal Bureš
Convert file path to uri for easier use of links to local files outside of Obsidian
Static File Server
5 years ago by Elias Sundqvist
Serve obsidian vault subfolders with a static web server
File Tree Alternative
5 years ago by Ozan Tellioglu
This Obsidian Plugin allows users to have a different file explorer experience.
Advanced New File
5 years ago by Ivan Chernov
Create file in chosen folder
File Explorer Note Count
5 years ago by Ozan Tellioglu
Obsidian Plugin for viewing the number of elements under each folder within the file explorer
Symlink Creator
2 years ago by Tobias Heidler
A plugin for Obsidian that allows the creation of symlinks - for Windows, OS X and Linux only!
Modal Opener
2 years ago by Muuxi
Open files and links in modal windows, or create and edit compatible files in modal windows.
Ffmpeg Converter
2 years ago by MrAnyx
Convert your assets into other formats. Convert, Compress and Optimize your vault
Fold Properties
2 years ago by James Alexandre
Adds Fold/Unfold Properties Function to Folder Context Menu
Nav Weight
2 years ago by shu307
A simple plugin designed to sort files in navigation based on markdown frontmatter (also known as metadata) for Obsidian.
File Manager
2 years ago by Juan Sicilia
A file manager plugin for Obsidian
Folder Tabulation
2 years ago by SpeedaRJ
An open source plugin for obsidian that let's you treverse local folder structure via keybindings and commands.
Auto File Organizer
2 years ago by mofukuru
Obsidian plugin: Automatically organizes files into folders based on their extensions.
Open in GitHub
2 years ago by Muurphy Chen
This is an Obsidian plugin designed to open project or files directly in GitHub via your browser.
Course Module Loader
a year ago by Sebastian Kamilli
Downloads and unzips course module zip files from a URL into a specified vault folder, skipping existing files.
JSON-CSV Importer
3 months ago by farling42
Plug-in for Obsidian.md which will create Notes from JSON files