Deploy a 24/7 AI Second Brain Server
Turn your idle Windows PC into an always-on AI agent for your Obsidian vault.
Introduction
30 Second Summary
You have thousands of notes, articles, and ideas scattered across your Obsidian vault. Finding the right piece of knowledge when you need it feels like searching a library with no catalog.
In this project, you will deploy Hermes Agent on your Windows PC as an always-on AI server that reads, searches, and writes to your personal knowledge base. You'll access it from anywhere via a secure mesh network, and it will automatically ingest new sources into structured wiki pages while you sleep.
What You'll Build
Picture this: you're at a coffee shop on your MacBook, you ask your company brain a question about a client, and within seconds you get an answer grounded in your 10,000 notes. Articles you clipped yesterday have already been processed into cross-linked wiki pages overnight.
By the end of this project, you'll have:
- A personal AI server running 24/7 on your Windows PC that answers questions grounded in your 10k-note company brain, accessible from both MacBooks anywhere in the world.
- Automated nightly ingestion that turns raw articles you clip throughout the day into structured, cross-linked wiki pages by morning.
- Smart multi-model routing that uses cheap models for routine queries and escalates to frontier models for deep synthesis, keeping costs under $10/month for daily use.
- Secret Mission: Connect WhatsApp so you can query your company brain from your phone like texting a colleague.
Are there any prerequisites?
This project assumes you already have an Obsidian vault set up with the Karpathy second brain structure (raw/, wiki/, index). You should also be comfortable using a terminal and running CLI commands.
You'll need a Windows PC that can stay powered on (yours has an RTX 2070, which is perfect), plus your macOS machines for remote access. An OpenRouter account is free to create during the project.
Before We Start
Before we dive in, let's lock in what you're about to build and why it matters for your daily workflow.
Install Hermes Agent and Syncthing on the Windows PC
Your Windows PC has the hardware to run 24/7, but right now it's just an idle box collecting dust.
To turn it into your always-on second brain server, it needs two things: Hermes Agent (the AI that maintains your wiki) and Syncthing (the bridge that keeps your Obsidian vault in sync between machines). In this step, you'll install both tools and get your 10k-note vault flowing from your M5 Pro to the Windows PC.
In this step, get ready to:
- Install Hermes Agent on the Windows PC.
- Install and configure Syncthing on both machines to sync your vault.
- Point Hermes at the synced vault location.
Install Hermes Agent on Windows
Hermes Agent is the persistent AI that will read, write, and search your Obsidian vault. It installs via a single PowerShell command.
- On your Windows PC, open PowerShell by pressing the Windows key, typing PowerShell, and pressing Enter.
- Install Hermes Agent by running this command:
iex (irm https://hermes-agent.nousresearch.com/install.ps1)
What does this command do?
This downloads and executes the official Hermes Agent installer script. It places the hermes binary on your system PATH so you can call it from any terminal session.
- Close and reopen PowerShell so the new PATH takes effect.
- Confirm Hermes is installed by running:
hermes --version
Before you run this, what do you expect to see if the install worked?
✔️ I see a version number
Hermes Agent is installed and ready. Move on to the next substep.
ⓧ Command not found
The PATH hasn't updated yet. Try these fixes:
- Make sure you fully closed and reopened PowerShell after the install.
- Try opening a brand new PowerShell window (not a tab in the same session).
- If it still fails, restart your PC and try hermes --version again.
Install and configure Syncthing on both machines
Syncthing keeps your Obsidian vault synced bidirectionally between your M5 Pro (where you edit notes daily) and the Windows PC (where Hermes will read them). You'll install it on both machines and pair them.
- On your Windows PC, open a browser and go to syncthing.net/downloads.
- Download the Syncthing Windows Setup installer (the lightweight Inno Setup-based installer listed under Integrations).
- Run the installer and follow the prompts to complete installation.
- Once installed, Syncthing starts automatically and opens its admin GUI in your browser at http://127.0.0.1:8384.
What is the Syncthing web UI?
Syncthing runs as a background process and exposes a web-based dashboard at http://127.0.0.1:8384. This is where you add folders to sync and pair remote devices.
Now install Syncthing on your M5 Pro.
- On your M5 Pro, open Terminal and install Syncthing via Homebrew by running:
brew install syncthing
- Start Syncthing on your M5 Pro by running:
syncthing
What happens when Syncthing starts?
Syncthing generates encryption keys on first run and opens the admin GUI in your browser at http://127.0.0.1:8384. It takes over the terminal session while running. Leave it running and open a new terminal tab for future commands.
Now pair the two machines and share your vault folder.
- In the Syncthing web UI on your M5 Pro, look at the top of the page for your device's Device ID (click Actions, then Show ID).
- Copy the full Device ID string.
- In the Syncthing web UI on your Windows PC, click Add Remote Device at the bottom right.
- Paste your M5 Pro's Device ID into the Device ID field and click Save.
- On your M5 Pro, accept the incoming device connection request when it appears.
- On your M5 Pro's Syncthing web UI, click Add Folder.
- Set the Folder Path to your Obsidian vault directory (the folder containing your raw/, wiki/, and other Karpathy structure folders).
- In the Sharing tab of the folder settings, check your Windows PC device to share this folder with it.
- Click Save.
- On the Windows PC's Syncthing web UI, accept the incoming folder share when the prompt appears. Choose a local path for the synced vault (for example, C:\Users\YourName\ObsidianVault).
Wait for the initial sync to complete. With a 10k-note vault this may take a few minutes depending on your network speed.
- On the Windows PC's Syncthing web UI at http://127.0.0.1:8384, confirm the vault folder status shows Up to Date and your M5 Pro appears as a connected device.
Folder stuck on Syncing or not appearing?
- Make sure both machines are on the same network (or can reach each other over the internet).
- Check that the Windows Firewall allowed Syncthing through when prompted during install. If not, add an exception for syncthing.exe manually.
- If the folder path on Windows doesn't exist yet, Syncthing creates it automatically. Give it a moment.
Help me troubleshoot Syncthing not connecting between my Mac and Windows PC.
Point Hermes at the synced vault
Hermes looks for an OBSIDIAN_VAULT_PATH variable in its config file to know where your notes live. You need to set this to the Windows path where Syncthing placed your vault.
- On the Windows PC, open the Hermes config directory by running:
# Open the Hermes config directory
cd ~/.hermes
- Open (or create) the .env file in this directory by running:
notepad .env
- Add the following line, replacing the path with the actual location where Syncthing synced your vault:
OBSIDIAN_VAULT_PATH=[[VAULT_PATH="C:\Users\YourName\ObsidianVault"]]
Where do I find the vault path?
Use the path you chose when you accepted the folder share in Syncthing. You can confirm it by checking the Folder Path shown in your Windows Syncthing web UI under the vault folder's settings.
- Save the file in Notepad (Ctrl+S) and close it.
- Confirm the file saved correctly by running:
cat ~/.hermes/.env
You should see the OBSIDIAN_VAULT_PATH line printed with your vault path.
File is empty or missing?
- Make sure you saved with the exact filename .env (not .env.txt). In Notepad, change Save as type to All Files before saving.
- Check that the ~/.hermes directory exists. If not, run hermes --version once (which creates it), then try again.
Help me set up my Hermes .env file on Windows.
Let's do a final check that everything from this step is working together.
Before you run the next commands, what two things do you expect to confirm?
- Run hermes --version in PowerShell and confirm it prints a version number.
- Open http://127.0.0.1:8384 in your browser and confirm your vault folder shows Up to Date with your M5 Pro listed as a connected device.
Your Windows PC now has a brain (Hermes Agent) and a live feed of your notes (Syncthing). Next up, you'll connect Hermes to an LLM provider so it can actually think.
Configure OpenRouter and Multi-Model Routing
Your Windows PC has Hermes installed and your vault syncing. But right now, Hermes has no brain. It needs an LLM provider before it can respond to a single question.
In this step, you'll connect Hermes to OpenRouter, a single API that gives you access to dozens of models. You'll configure a cheap default model for daily queries and confirm you can escalate to a frontier model when you need deep synthesis.
In this step, get ready to:
- Create an OpenRouter account and add credits.
- Configure Hermes with your API key and a default model.
- Test model switching between cheap and frontier models.
Create an OpenRouter account and get your API key
OpenRouter is a unified API gateway that routes requests to many different LLM providers. One API key gives you access to cheap models like DeepSeek for routine work, and frontier models like Claude Sonnet 5 when you need heavyweight synthesis.
- Open your browser and go to openrouter.ai.
- Click Sign Up and create an account (you can sign in with Google or GitHub).
- Once signed in, navigate to Credits in the left sidebar.
- Add at least $10 in credits. This unlocks higher rate limits (1000 requests/day instead of 50).
- Navigate to Keys in the left sidebar.
- Click Create Key, give it a name like hermes-agent, and copy the generated key.
Why $10 in credits?
OpenRouter charges a 5.5% fee on credit purchases, with no markup on the provider's own token pricing. Adding $10 unlocks 1000 requests per day (up from 50 on the free tier at 20 RPM). You only pay for tokens you actually use.
OpenRouter also offers 25+ free models at $0/token (including Llama 3.3 70B and Qwen3 Coder) that you can use for experimentation without consuming credits.
Keep your API key safe
Copy the key to a password manager or a local plain-text note. You will paste it in the next substep. Never commit API keys to version control.
Configure Hermes with OpenRouter
With your API key ready, you will use the Hermes model picker to wire up OpenRouter as your LLM provider and select a cheap default model.
- Return to your PowerShell terminal on the Windows PC.
- Launch the interactive model picker by running:
hermes model
What does hermes model do?
This command launches an interactive wizard that walks you through selecting your LLM provider, entering your API key, and choosing a default model. The key is saved to ~/.hermes/.env and the model choice is stored in ~/.hermes/config.yaml.
- When prompted for a provider, select OpenRouter.
- When prompted for your API key, paste the key you copied from the OpenRouter dashboard.
- When prompted to choose a default model, pick a cost-efficient option like DeepSeek or Kimi K2.7. These are cheap models that handle routine queries well.
Why start with a cheap model?
DeepSeek and Kimi K2.7 cost a fraction of what frontier models charge. For daily wiki maintenance and routine questions, they perform well enough. You can escalate to Claude or GPT for complex synthesis tasks on demand, keeping your monthly bill under $10 for typical use.
Now verify Hermes can actually think. Before you ask it a question, predict: do you think it will respond successfully, or will it error out?
- Send a quick test query to confirm your API key works by running:
hermes chat -q "What is 2+2?"
Hermes should respond with an answer (likely "4" with some surrounding text). This confirms your API key is valid and the model is responding.
Not getting a response?
- Double-check your API key has no extra spaces. Re-run hermes model and paste it again.
- Confirm you have credits loaded in your OpenRouter account. The free tier only allows 50 requests/day with limited models.
- Make sure the model you selected has a context window of at least 64,000 tokens. Hermes rejects models with smaller windows at startup.
Help me debug Hermes not responding after configuring OpenRouter.
Test model switching
Your cheap model handles daily queries. But when you need deep synthesis or complex reasoning, you want frontier access. The /model slash command lets you switch models mid-session without leaving the chat.
- Start an interactive Hermes session by running:
hermes
What does this command do?
Running hermes with no subcommand starts the interactive CLI. You will see a welcome banner showing your model, available tools, and skills. You can type messages directly and use slash commands like /model to change settings mid-conversation.
- Once the chat session loads, type /model and press Enter.
- Select anthropic/claude-sonnet-5 from the list to switch to the frontier model.
- Send a message like: "Summarize the benefits of multi-model routing in three bullet points."
- Confirm you receive a response from Claude Sonnet 5.
What does frontier access cost?
Claude Sonnet 5 on OpenRouter costs $2 per million input tokens and $10 per million output tokens. A single complex query typically uses a few thousand tokens, so occasional frontier use adds only pennies per query.
The key is routing: use your cheap model for 95% of tasks and escalate sparingly.
- Switch back to your cheap default model by typing /model again and selecting your DeepSeek or Kimi option.
- Exit the chat session by pressing Ctrl+C.
Before running the final check, predict: will hermes doctor pass with all green checks, or will it flag any issues?
- Run the Hermes health check to confirm everything is wired up correctly:
hermes doctor
You should see green checkmarks across categories including Config and Credentials. The Credentials line confirms your OpenRouter provider is reachable.
Seeing warnings from hermes doctor?
- A warning about Plugins or Skills is normal on a fresh install and will not affect your workflow.
- If Credentials shows a failure, re-run hermes model and re-enter your OpenRouter API key.
- If the issue persists, check that your Windows PC has an active internet connection and that OpenRouter is not experiencing an outage.
Help me fix hermes doctor credential warnings after OpenRouter setup.
Your agent can think. It has access to cheap models for daily work and frontier models for deep synthesis, all through one API key. Next up, you will connect Hermes to your Obsidian vault so it can read, search, and write to your 10k-note company brain.
Connect Hermes to Your Obsidian Vault
Your Hermes Agent can talk to OpenRouter and respond to questions. But right now it has no access to your company knowledge. It is a brain without memories.
Hermes ships with a bundled Obsidian skill that reads, searches, and writes notes using the vault path you configured in ~/.hermes/.env. In this step, you will confirm that Hermes can see your Karpathy folder structure, find notes by topic, and create new pages that sync back to your MacBook.
In this step, get ready to:
- Confirm Hermes sees your vault's Karpathy folder structure.
- Test search and read operations against your existing notes.
- Test write operations by creating a note and verifying it syncs to your Mac.
Verify vault structure visibility
The bundled Obsidian skill uses the OBSIDIAN_VAULT_PATH environment variable you set in the previous step. If the path is correct, Hermes can navigate your vault's filesystem directly.
- Start a new Hermes chat session by running:
hermes
- In the chat, type the following message and press Enter:
List the top-level folders in my Obsidian vault.
Hermes uses its bundled Obsidian skill to read the filesystem at your configured path. You should see output listing your Karpathy structure folders including raw/, wiki/, and your index files.
How does the Obsidian skill work?
The bundled Obsidian skill is installed by default at skills/note-taking/obsidian. It uses file tools (read, write, search) to interact with your vault as a filesystem. No vector database or RAG pipeline needed.
This filesystem-first approach aligns perfectly with the Karpathy pattern. Your auto-maintained indexes replace vector search, and Hermes navigates the vault the same way you would.
Hermes can't find your vault?
If Hermes responds with an error about the path not existing, double check that your OBSIDIAN_VAULT_PATH in ~/.hermes/.env points to the exact folder where Syncthing placed your vault on the Windows PC. Open the folder in File Explorer to confirm it contains your raw/ and wiki/ directories.
help me debug why Hermes can't find my Obsidian vault path
Test a read operation
Seeing folder names proves Hermes can navigate the vault structure. Now you need to confirm it can actually search through note content and return grounded answers.
- In the same Hermes chat, ask it to search for a topic you know exists in your vault. Type something like:
Search my wiki for notes about [a topic you know exists in your vault].
Pick a topic with multiple notes
Choose a topic that appears across several notes in your vault. This gives you a better signal that Hermes is genuinely searching rather than getting lucky on a single file match.
Hermes should return a summary of relevant notes with content that matches what you know is in your vault. Confirm the information is accurate and grounded in your actual notes, not hallucinated.
Getting irrelevant or empty results?
Make sure you are searching for a term that appears in filenames or note content inside your wiki/ folder. If your vault uses a different folder structure, adjust your query to reference the correct path. Also confirm Syncthing shows the vault as fully synced (status Up to Date) on the Windows PC.
help me figure out why Hermes search isn't finding my notes
Test a write operation
Reading and searching are half the story. Hermes also needs to create and update wiki pages during nightly ingestion. A write test confirms the full read-write loop works end-to-end, including Syncthing propagation back to your Mac.
- In the Hermes chat, type the following message:
Create a note at wiki/test-hermes.md with a brief summary of what Hermes Agent is.
Hermes uses its write_file tool to create the note at the specified path inside your vault.
- Switch to your MacBook and open Obsidian.
- Navigate to your wiki/ folder in the Obsidian sidebar.
- Look for test-hermes.md in the file list.
Before you check, how quickly do you think the note will appear? Syncthing propagates changes in near real-time when both devices are connected.
The note should appear within 30 seconds. Open it and confirm it contains a reasonable summary about Hermes Agent.
Why 30 seconds?
Syncthing watches for filesystem changes and pushes them immediately to paired devices. The slight delay accounts for network latency between your Windows PC and MacBook. In practice, most files appear in under 10 seconds on a local network.
- After confirming the note appeared, delete wiki/test-hermes.md from Obsidian on your Mac. This keeps your vault clean.
Note not showing up on your Mac?
Open the Syncthing web UI on your Windows PC at http://127.0.0.1:8384 and check that the vault folder shows Up to Date. If it shows Syncing, wait for it to finish. If the connection is paused or disconnected, resume it from the Syncthing UI on both devices.
help me debug why my Syncthing vault sync isn't propagating new files
Your Hermes Agent now has full read, search, and write access to your 10k-note company brain. It can navigate the Karpathy folder structure, find relevant notes by topic, and create new wiki pages that sync to your MacBook in seconds. Next up, you will make this entire setup accessible from anywhere in the world.
Set Up Tailscale for Remote Access
Your Hermes agent can now search, read, and write to your entire vault. There's one catch. It's trapped on your Windows PC.
In this step, you'll install Tailscale on all three of your devices to create a private mesh network. This lets you access the Hermes web dashboard from both MacBooks anywhere in the world without exposing any ports to the internet.
In this step, get ready to:
- Install Tailscale on your Windows PC and both MacBooks.
- Start the Hermes gateway on the Windows PC.
- Test remote vault access from your MacBook.
Install Tailscale on your devices
Tailscale creates a private mesh network (called a tailnet) between your devices. Each device gets a stable private IP in the 100.x.x.x range. All traffic is encrypted end-to-end with WireGuard, and there's no port forwarding or firewall rules to configure.
Why Tailscale instead of port forwarding?
Port forwarding exposes your PC to the entire internet. Anyone who finds the open port can attempt to connect. Tailscale only allows devices signed into your account to see each other. Your Hermes gateway stays invisible to the public internet while remaining instantly accessible from your MacBooks.
- On your Windows PC, open a browser and go to tailscale.com/download.
- Download the Windows .exe installer and run it.
- After installation, a Tailscale icon appears in your system tray. If it's not visible, click the up arrow in the system tray overflow area to find it.
- Right-click the Tailscale icon, then select Log in. This opens a browser window where you authenticate with your preferred identity provider (Google, Microsoft, GitHub, etc.).
After signing in, Tailscale assigns your PC a private IP starting with 100.. Note this IP down. You'll need it in the next substep.
- Confirm your Tailscale IP by running this command in PowerShell:
tailscale status
You should see a table with your Windows PC listed. The first column shows your Tailscale IP (e.g. 100.64.0.1).
Don't see a Tailscale IP?
Make sure you completed the sign-in step. The Tailscale icon in your system tray should show a connected state (not greyed out). If tailscale is not recognized as a command, close and reopen PowerShell so it picks up the updated PATH.
help me troubleshoot Tailscale not connecting on Windows
Now install Tailscale on both MacBooks using the same account.
- On your M4 Air, go to tailscale.com/download and install the macOS app.
- Open Tailscale and sign in with the same account you used on the Windows PC.
- Repeat on your M5 Pro. Sign in with the same account.
- Back on the Windows PC, verify all devices are connected by running:
tailscale status
You should now see three devices listed in the table: your Windows PC, the M4 Air, and the M5 Pro. Each has its own 100.x.x.x IP.
Only seeing one or two devices?
Confirm you signed into the same Tailscale account on all three devices. Different accounts create separate tailnets that can't see each other. Open the Tailscale menu on each Mac and verify it shows a connected state.
help me get all my devices visible on the same Tailscale network
Start the Hermes gateway
Hermes includes a built-in web gateway that serves a chat dashboard on port 8642. Since all your devices are on the same Tailscale network, traffic routed through the PC's Tailscale IP reaches the gateway without any extra configuration.
- On the Windows PC, open a new PowerShell window and start the gateway by running:
hermes gateway
What does this command do?
This starts a persistent web server on localhost:8642. It provides a browser-based chat interface to your Hermes agent. The gateway process keeps running in this terminal window. Don't close it.
- On your MacBook, open a browser and navigate to your PC's Tailscale IP on port 8642:
http://[[TAILSCALE_IP="your Windows PC's Tailscale IP (e.g. 100.64.0.1)"]]:8642
You should see the Hermes web dashboard load in your browser.
Dashboard not loading?
Check that the hermes gateway process is still running in PowerShell on the PC. If it exited with an error, restart it. Also confirm you're using the Tailscale IP (starts with 100.), not the PC's local network IP (starts with 192.168. or 10.).
help me access the Hermes dashboard from my MacBook via Tailscale
Test remote vault queries from your MacBook
The dashboard is loading, but the real test is whether Hermes can still access your vault when you're chatting through the web interface.
Before you send a message, think about this: do you expect Hermes to access your vault from this web interface? Remember that the gateway runs on the Windows PC where the vault physically lives.
- In the Hermes web dashboard on your MacBook, send a message asking about a topic you know exists in your vault. For example: "Search my wiki for notes about [a topic in your vault]."
You should see a response grounded in your vault content. Hermes runs on the Windows PC where the synced vault lives, so it has full file access regardless of which device you're chatting from.
- For the ultimate test, switch your MacBook to a different network (e.g. your phone's hotspot) and try again.
- Open the same URL in your browser and send another vault query.
The response comes through just as fast. Tailscale handles the routing regardless of what network your MacBook is on.
You can now chat with your company brain from any coffee shop, airport, or meeting room. Next up, you'll automate nightly ingestion so new articles you clip throughout the day are structured into wiki pages by morning.
Automate Nightly Ingestion with Cron
Your Windows PC is now a remote second brain server accessible from anywhere via Tailscale.
But there is a gap in the workflow. Every time you clip a new article into raw/, someone has to manually ask Hermes to process it into a wiki page. The whole point of the Karpathy pattern is that raw sources compile into structured wiki pages automatically. In this step, you will teach Hermes the ingestion workflow and schedule it to run every night at 2am while you sleep.
In this step, get ready to:
- Teach Hermes your ingestion workflow and execute it on a real file.
- Schedule the workflow to run every night at 2am using Hermes's built-in cron scheduler.
- Test the full pipeline by dropping a new file on your Mac and confirming it gets processed.
Teach Hermes your ingestion workflow
Before scheduling anything, you need to define the exact workflow Hermes should follow. Cron jobs in Hermes run in fresh agent sessions with no memory of prior conversations. The prompt you write here must be completely self-contained.
- Switch back to your Hermes chat on the Windows PC.
- Confirm you have at least one .md file in raw/ that is not inside raw/processed/. If you do not, create a quick test file on your MacBook in Obsidian at raw/test-ingestion.md with a few paragraphs about any topic, then wait for Syncthing to sync it to the PC.
- Send the following message to Hermes to define and immediately execute the ingestion workflow:
I want you to check my raw/ folder for any .md files that aren't in raw/processed/. For each one, read it, create or update a wiki page summarizing its key concepts with wikilinks to related existing pages, update wiki/index.md with the new entry, then move the source file to raw/processed/.
What does this prompt do?
- Hermes scans raw/ for unprocessed .md files using the bundled Obsidian skill's file tools.
- For each file it finds, it reads the content, generates a structured wiki page with wikilinks to related concepts already in your vault, and writes it to wiki/.
- It updates wiki/index.md so you can always find the new entry.
- Finally, it moves the source into raw/processed/ so it is not re-ingested next time.
- Watch Hermes execute the workflow. It will read the file, create a wiki page, update the index, and move the source.
- Open Obsidian on your MacBook and confirm the new wiki page appeared in wiki/ (give Syncthing a few seconds to propagate).
- Confirm the source file now lives in raw/processed/ rather than raw/.
Hermes did not find any files?
- Make sure Syncthing finished syncing the test file to the PC. Check the Syncthing web UI at http://127.0.0.1:8384 and confirm the vault folder shows "Up to Date".
- Verify your OBSIDIAN_VAULT_PATH in ~/.hermes/.env points to the correct synced folder on the PC.
- Check that raw/processed/ exists as a subfolder. If not, create it manually and try again.
Still stuck? Help me troubleshoot why Hermes can't find my raw/ files for ingestion.
Schedule nightly ingestion
Now that the workflow runs correctly on demand, you can schedule it to fire automatically every night. Hermes has a built-in cron scheduler that ticks every 60 seconds inside the gateway process. No external cron setup is needed.
Why use cron expressions instead of plain English?
Hermes's scheduler requires standard cron syntax or interval expressions. Natural language like "daily at 2am" is not supported as a schedule value. The expression 0 2 * * * means "at minute 0 of hour 2, every day."
- In the Hermes chat, create the scheduled job by typing this command:
/cron add "0 2 * * *" "Check my raw/ folder for any .md files that aren't in raw/processed/. For each one, read it, create or update a wiki page summarizing its key concepts with wikilinks to related existing pages, update wiki/index.md with the new entry, then move the source file to raw/processed/. If no new files are found, respond with [SILENT]." --skill obsidian --name "Nightly ingestion"
What does this command do?
- /cron add creates a new scheduled job.
- 0 2 * * * sets the schedule to 2:00am daily.
- The quoted prompt is self-contained because cron jobs run in fresh agent sessions with no memory of your conversation history.
- --skill obsidian attaches the bundled Obsidian skill so the cron agent can read and write vault files.
- --name "Nightly ingestion" gives the job a human-readable name you can reference later.
Hermes will confirm the job was created and show you the job ID and next scheduled run time.
- Verify the job is scheduled by running:
/cron list
You should see your "Nightly ingestion" job listed with a schedule of 0 2 * * * and a "Next run" time around 2:00am tonight.
Job not showing in the list?
- Confirm the Hermes gateway is still running on the Windows PC. Cron jobs only fire when the gateway process is active.
- If you see an error about the schedule format, make sure you used the exact cron expression "0 2 * * *" in quotes. Natural language like "daily at 2am" is not accepted as the schedule value.
Still stuck? Help me figure out why my Hermes cron job did not get created.
Test the full pipeline end-to-end
The cron job will fire automatically at 2am, but you do not need to wait until then to test it. You can trigger the job manually to verify everything works through the complete cycle: file on Mac, Syncthing propagation, Hermes processing, result back on Mac.
- On your MacBook, create a new test file in Obsidian at raw/test-nightly.md with a few paragraphs about a topic relevant to your company brain (a technique, a tool overview, or meeting notes).
- Wait 10-20 seconds for Syncthing to propagate the file to the Windows PC.
- Back in the Hermes chat on the Windows PC, trigger the job immediately for testing by running:
/cron run Nightly ingestion
What does /cron run do?
This triggers your cron job on the next scheduler tick (within 60 seconds) without waiting for the 2am schedule. It runs the job exactly as it would fire at the scheduled time, in a fresh agent session with the Obsidian skill attached.
Before you check the result, predict what you expect to find. Should test-nightly.md still be in raw/, or will it have moved?
- Wait about 60 seconds for the scheduler to pick up and execute the triggered job.
- Open Obsidian on your MacBook and check wiki/ for a newly created page based on test-nightly.md.
- Confirm test-nightly.md has moved from raw/ to raw/processed/.
- Open wiki/index.md and confirm it now includes an entry for the new page.
You should see all three results: a new wiki page with wikilinks to related notes, the source file moved to raw/processed/, and wiki/index.md updated. That is your nightly ingestion working end-to-end.
No new wiki page appeared?
- Run /cron list and check the job's last run status. If it shows an error, the prompt may need adjusting for your vault structure.
- Confirm Syncthing had time to propagate test-nightly.md to the PC before you triggered the job. Check the Syncthing web UI on the PC.
- Verify the Hermes gateway is still running. The cron scheduler only ticks inside the gateway process.
Still stuck? Help me debug why my nightly ingestion cron job did not process my test file.
Secret mission
Connect WhatsApp for Mobile Access
The web dashboard works great, but it requires Tailscale running on whatever device you're using. What if you could text your company brain from your phone like messaging a colleague? In this secret mission, you'll connect WhatsApp to Hermes so your 10k-note knowledge base is one message away, no VPN or extra apps needed.
Clean Up Your Resources
Clean Up Your Resources
Decide whether to keep your resources running, pause them to come back later, or delete them entirely. Your Windows PC uses power running 24/7, and OpenRouter charges only for tokens consumed. There are no idle token costs when Hermes is not actively processing messages.
Cost warning
Your Windows PC draws approximately 100-150W at idle with the RTX 2070 installed. OpenRouter credits are only consumed when Hermes sends requests to a model. If you leave the system running but do not interact with it, your only ongoing cost is electricity.
If you want to minimise costs while keeping the system ready, choose Pause below to stop the Hermes gateway process.
Resources you used:
- Hermes Agent running as a persistent process on your Windows PC (includes gateway, cron jobs, and configuration in ~/.hermes/).
- Syncthing running on Windows PC and macOS M5 Pro (vault sync).
- Tailscale running on Windows PC, macOS M4 Air, and macOS M5 Pro (mesh VPN).
Keep everything running
No action needed. Choose this if you are still actively using your second brain server and want it available 24/7.
- Hermes gateway and Syncthing auto-start on boot. If your PC restarts, everything comes back up automatically.
- Tailscale remains connected across all three devices with no ongoing cost (free tier).
- Your OpenRouter credits sit idle until you send a message. No tokens are consumed while Hermes is waiting.
- Consider setting your Windows power plan to allow the GPU to sleep when not in use to reduce electricity draw.
Pause - I'll come back to this later
Shut down the Hermes gateway to stop all token usage and free up system resources. Syncthing and Tailscale can remain running with negligible cost.
- On the Windows PC, stop the Hermes gateway process by pressing Ctrl+C in the terminal where it is running (or close the terminal window).
- Your nightly cron job will not execute while the gateway is stopped.
- Syncthing continues syncing your vault files between devices at no cost.
- Tailscale stays connected for remote desktop or SSH access to the PC.
- To resume later, open PowerShell on the PC and run hermes gateway. Everything picks up where you left off.
Delete - I don't want to use this again
Remove all project resources and start fresh. This is permanent.
Hermes Agent:
- On the Windows PC, stop the Hermes gateway if it is still running.
- Uninstall Hermes by running this command in PowerShell:
hermes uninstall
- Verify the ~/.hermes/ directory has been removed. If it still exists, delete it manually.
Syncthing:
- On the Windows PC, open the Syncthing web UI at http://127.0.0.1:8384 and remove the shared vault folder from the configuration.
- Close Syncthing, then delete the Syncthing binary and its configuration directory at %LocalAppData%\Syncthing.
- On the macOS M5 Pro, remove the shared folder from Syncthing's configuration and delete the app.
Tailscale:
- On the Windows PC, go to Settings > Apps. Find Tailscale and press Uninstall.
- On each MacBook, drag Tailscale to the Trash and confirm that the system extension will be removed.
What about your OpenRouter credits?
Your OpenRouter credits are only consumed when a model processes tokens. With Hermes uninstalled, no requests are sent and no charges accrue. Your remaining balance sits unused until you choose to spend it on another project.
Nice Work!
Nice Work!
You just turned an idle Windows PC into a personal AI infrastructure. Your 10k-note company brain is now accessible from any device, automatically maintained overnight, and powered by smart multi-model routing that keeps costs low.
You've learned how to:
- Deploy Hermes Agent on a Windows PC as a persistent AI server with OpenRouter for multi-model routing between cheap daily drivers and frontier models on demand.
- Connect the agent to a Karpathy-style Obsidian vault with full read, write, and search capabilities, synced bidirectionally across devices via Syncthing.
- Set up secure remote access with Tailscale and automate nightly ingestion of raw sources into structured, cross-linked wiki pages.
- (Secret Mission) Connected WhatsApp for phone-based access to the company brain, swappable to Telegram, Slack, or Discord anytime via hermes gateway setup.
Ready to quiz yourself?