π§ How I Created a Command Center in Obsidian
Overview
In this post, I walk through how I set up a personal command center inside Obsidian β a central hub where I can generate project folders and starter files using templates, buttons, and hotkeys. The goal: remove repetition and standardize my workflows.
1. Introduction
βIf you find yourself doing the same steps over and over, there is likely an opportunity to automate.β
While setting up projects for my home NAS server, I noticed I was repeating the same steps every time I started a new build:
- Create a project folder
- Add a standard set of files (README, setup notes, kanban board, etc.)
- Manually fill out the same sections
This needed to be automated β not later, now.
2. Folder Setup
Start by setting up your Obsidian vault to separate templates from projects:
vault
βββ daily-journal
βββ other-stuff
βββ projects # β I want my generated project folder/files to go here
βββ templates # β This holds my Templater scripts
3. Required Plugins
Install and enable the following:
- β Templates (core plugin)
- β Templater (community plugin)
- β Buttons (community plugin)
Then go to Settings β Templater under the Community Plugins section and set the Template folder location to templates
.
I also did the same in the Templates (core) settings panel β not sure if itβs necessary, but it didnβt hurt.
4. Create Your Project Template
In your templates
folder, create a new file β name it something like my_template.md
.
Inside, add the following code block using <%* %>
to enable asynchronous scripting:
<%*
const projectName = await tp.system.prompt("Project name (e.g., nas, flask_api_app)")
const folder = `02_PROJECTS/${projectName}`
// README.md
await tp.file.create_new(`# ${projectName}
## π§ Purpose What is this project?
## π¦ Stack
- OS:
- Framework:
- Host:
## π Status
- [ ] Planning
- [ ] In Progress
- [ ] Complete
## π Related Learning
- [[04_LEARNING/...]] β link to relevant topics or notes
## π©Ί Informatics Tie-In
- What healthcare or clinical workflow does this simulate or support?
- Where could this be used in real-world systems (e.g., edge devices, EHR
backup, automation)?
- What problem does this solve for clinicians or health IT staff?`,`README`, false,folder)`
//do the same for the rest of the templates.
%>
π What this code does
tp.system.prompt(...)
: prompts me to enter a project namefolder = 02_PROJECTS/${projectName}
: defines the folder to store the projecttp.file.create_new(...)
: creates each Markdown file in that folder
π Why use await
here?
In JavaScript (and in Obsidian Templater), await
is used to pause the execution of the script until an asynchronous action finishes.
Templater functions like:
tp.system.prompt()
(waits for input)tp.file.create_new()
(waits for the file to be written)
...are asynchronous. Without await
, the script would move on before these complete, leading to incomplete or broken workflows.
Important: await
only works inside <%* %>
blocks in Obsidian.
π Expected File Tree After Running the Template
Assuming you enter my_project
when prompted, this is what your vault will look like:
vault
βββ daily-journal
βββ other-stuff
βββ projects
β βββ my_project
β βββ README.md
β βββ documentation.md
β βββ kanban.md
β βββ setup_plan.md
βββ templates
βββ my_template.md
5. Assign a Hotkey or Create a Button
π Add a Hotkey
Go to:
Settings β Templater β Template Hotkeys
- Add your
my_template.md
file - Assign a custom hotkey like
Cmd + Shift + P
Now you can trigger your template instantly.
π Or Add a Button
You can also use the Buttons plugin to add a clickable button:
```button
name π Create Project
type command
action Templater: Create 08_Templates/Project_Folder_Template.md
color green
```
Or use the βButton Makerβ from the Command Palette to do the same.

6. Next Steps
The next phase will include:
- Templates for my
learning
folder - Automating common workflows
- Standardizing my project notes and documentation
- Scaling the control center to include idea capture, blog drafts, and daily workflows
Cheers!
References
Button plugin
Templater plugin
Dynamic folder creation- Obsidian
buttons to run a template
await in templater -Obsidian