README file from
GithubObjects
Rethink your notes as objects. Create structured, perfectly organized notes directly in your flow using simple triggers.
Why Objects?
This plugin was built for a specific kind of note-taker: The Obsidian Lover who misses Objects.
If you've experimented with apps like Anytype or Capacities because you loved their object-oriented approach, but ultimately found yourself returning to the power, privacy, and flexibility of Obsidian, then this is for you.
Objects brings that missing piece to your vault. No more manual folder navigation or messy template applications—just pure, structured creation without leaving your keyboard.
What it does
Objects bridges the gap between thinking and documenting. Instead of breaking your creative flow to manually create files, navigate folders, or apply templates, you simply define "Objects" (like @person, @meeting, or @atomic-note) and trigger them anywhere.
- Unified Workflow: Creation, organization, and linking happen in one single interaction.
- Smart Routing: Notes are automatically moved to their designated folders based on their type.
- Convert Existing Text: Turn a word you've already written into an object with a single command, no need to delete it and retype it after a trigger.
- Name Patterns: Prefill note names per object type (e.g.
TODO: {{title}}) and number them automatically (TODO: 1,TODO: 2, ...). - Command Execution: Map triggers to any Obsidian command (e.g.,
@reloadto reload the app,@dailyto open the daily note) to stay in your flow. - Dynamic Content: Fills templates via a simple fallback system (
{{title}},{{date}},{{time}}) or integrates natively with Templater. - Intelligent Linking: If an object already exists, the plugin links to it instead of creating a duplicate. The creation modal suggests existing notes in real-time.
- Property Management: Automatically add frontmatter properties (e.g.,
type: project) to newly created notes and filter suggestions by them. - Archive Awareness: Define tags or properties to mark notes as archived, excluding them from your active suggestion flow.
Preview
Try it out (Demo Vault)
To see Objects in action without configuring anything, check out our Demo Vault:
- Download the
demo/Objects-Demo-Vaultfolder from this repository. - Open Obsidian and select "Open folder as vault".
- Choose the downloaded
Objects-Demo-Vaultfolder. - Open the
Welcome.mdfile inside the vault for a quick guided tour.
The demo vault is pre-configured with sample templates, folders, and triggers to show you the power of object-oriented note-taking.
How to use it
- Trigger: Type your trigger symbol (default
@) followed by the object type (e.g.,@project) anywhere in your editor. - Identify: A suggestion list appears—select your desired object.
- Name: A modal pops up. Type the name of your new object (e.g., "Deep Work Initiative"). The modal will suggest existing notes based on your folder and property mappings. If the mapping has a name pattern, the name is already prefilled. Use the Open note after creation toggle to decide whether the new note opens in a new tab.
- Confirm: Hit
Enter. - Result: A clean markdown link is inserted at your cursor. The note is created or linked in the background using your specified template and properties.
Name patterns
Give a mapping a Name pattern to prefill the note name in the creation modal, e.g. TODO: {{title}} so every to-do starts with "TODO:", or TODO: {{counter}} to number them automatically (TODO: 1, TODO: 2, ...).
| Placeholder | Result |
|---|---|
{{title}} |
Your input (or the selected text); the cursor is placed here |
{{counter}} |
Next free number among notes in the target folder that match the pattern; {{counter:3}} pads to 001 |
{{date}}, {{time}} |
Current date (YYYY-MM-DD) and time (HH:mm); custom formats like {{date:YYYY-MM}} |
Examples
| Name pattern | Prefilled name |
|---|---|
TODO: {{title}} |
TODO: (you type the rest) |
TODO: {{counter}} |
TODO: 3 if TODO: 1 and TODO: 2 already exist |
{{date}} {{title}} |
2026-10-27 |
Meeting {{date:YYYY-MM-DD}} {{counter:2}} |
Meeting 2026-10-27 05 |
Good to know:
- The prefilled name can still be edited before creating the note.
- Set the pattern per mapping in Settings → Trigger mappings → Name pattern (template mappings only).
{{counter}}counts all notes in the target folder that match the pattern. It keeps counting up and does not restart, e.g. for a new date.- Characters that aren't allowed in file names (like
:) are replaced with_in the file name, soTODO: 1is saved asTODO_ 1.md. The link text still showsTODO: 1. - These placeholders are only for the note name. Template content uses its own placeholders (see Dynamic Content above) or Templater.
Convert existing text into an object
Already wrote the word and want to turn it into an object? No trigger needed:
- Select the text, or just place the cursor on a word.
- Run Objects: Convert selection to object from the command palette (
Ctrl/Cmd + P). Tip: assign it a hotkey in Settings → Hotkeys. - Pick the object type. If only one template mapping is enabled, this step is skipped.
- Confirm the name. It is prefilled with the selected text. If the mapping has a name pattern, the selected text is inserted at
{{title}}. A pattern without{{title}}(e.g.TODO: {{counter}}) prefills only the pattern, without the selected text. - The text is replaced with a link to the new note, or to the existing one if it already exists.
[!TIP] Trigger Conflicts: If the
@symbol is already being used by other plugins (like Mention or Calendar), you can easily change the Trigger symbol in the plugin settings to something else, like#or!. Existing mappings will update automatically.
Settings
Customize Objects to fit your personal knowledge management system:
| Setting | Description |
|---|---|
| Trigger symbol | Character that triggers the suggester (e.g. @, #, or !). |
| Core Configuration | Set your global Template Folder and a Default Output Path. |
| Behavioral Toggle | Enable Open created note to automatically open new notes in a new tab. |
| Property Support | Enable Use file properties to add and filter by frontmatter keys and values. |
| Archive Behavior | Define tags (e.g. #archived) or properties to exclude notes from suggestions. |
| Trigger Mappings | Map triggers to specific templates, folders, and properties with an enable/disable toggle. |
| Name Pattern | Per mapping: prefill the note name with text and placeholders like {{title}}, {{counter}}, {{date}}. See Name patterns. |
| Status Check | Real-time validation of your Templater integration. |
Platform Support
Objects is designed for both Desktop and Mobile environments.
- Tested on: Linux, Android (Mobile), iOS (Mobile)
- Compatible with: macOS, Windows
Installation
Via Obsidian (Recommended)
- Open Settings > Community Plugins.
- Click Browse and search for
Objects. - Click Install, then Enable.
Via BRAT
- Install the BRAT plugin.
- Open Settings > BRAT.
- Click Add Beta Plugin.
- Paste:
Finn-Kraemer/obsidian-objects - Click Add Plugin and enable Objects.
Manual Installation
- Download the
main.jsandmanifest.jsonfrom the latest release. - Create a folder named
obsidian-objectsin your vault's.obsidian/plugins/directory. - Move the downloaded files into that folder.
License
This project is licensed under the MIT License. See the LICENSE file for details.