Super hyped to be launching the first version of Daemon today!
My daemon is a personal API that anyone—or any AI—can query to learn about me, my projects, and what I'm working on.
I first talked about this concept in 2016 in my book The Real Internet of Things.
Here I talk about the API-ification of things in general:
So this is the first building block: every object has a daemon—An API to the world that all other objects understand. Any computer, system, or even a human with appropriate access, can look at any other object's daemon and know precisely how to interact with it, what its status is, and what it's capable of. The Real Internet of Things, 2016
And then here I talk about personal daemons specifically:
Most importantly, humans themselves will also have daemons, and we'll be moving through a world full of other daemons. Human daemons will hold all information about a person, compartmentalized based on type, sensitivity, access restrictions, etc., and that data will be used to send hyper-personalized requests to the daemons around us. The Real Internet of Things, 2016
I have thought since around 2014 that The future of tech was to have a massive number of APIs which are navigated not by humans but by our AI-powered digital Assistants. And to me this is amazing not just because of the tech, but because it allows us to to connect as humans!
Daemon is my early version of this—a public endpoint that serves up-to-date information about me in a format that both humans and AIs can use.
I recently wrote about deploying MCP servers on Cloudflare Workers, which is the approach I'm using for Daemon. This lets me run MCP servers at the edge, globally distributed, without managing any infrastructure.
And here's a rough breakdown of how interactions work.
Daemon runs as an MCP (Model Context Protocol) server at https://daemon.danielmiessler.com
. Here's how to interact with it:
First, see what endpoints are available:
curl -X POST https://daemon.danielmiessler.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
This returns a list of all available tools:
{
"jsonrpc": "2.0",
"result": {
"tools": [
{
"name": "get_about",
"description": "Get basic information about Daniel Miessler"
},
{
"name": "get_telos",
"description": "Get Daniel's TELOS framework - problems, missions, goals"
},
// ... more tools
]
},
"id": 1
}
To get information from a specific endpoint, like my TELOS (purpose framework):
curl -X POST https://daemon.danielmiessler.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_telos",
"arguments": {}
},
"id": 2
}'
This returns my TELOS framework data:
{
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "TELOS is my personal framework for tracking purpose and direction in life...\n\nProblems (P):\n- P1: People lack meaning in their lives...\n- P2: People are stuck in a 1950's style hierarchical mindset...\n\nMissions (M):\n- M1: Increase human Eudaimonia...\n- M2: Build systems—heavily leveraging AI..."
}
]
},
"id": 2
}
If you want to add Daemon to your Claude Code or other MCP-compatible tools, add this to your MCP config:
{
"mcpServers": {
"daemon": {
"url": "https://daemon.danielmiessler.com"
}
}
}
Here's what you can query through Daemon:
get_about
- Basic information about me and what I doget_narrative
- My personal narrative and focus areasget_mission
- What I'm trying to accomplishget_projects
- My current projectsget_telos
- My TELOS framework (Problems, Missions, Goals, Metrics)get_favorite_books
- My favorite booksget_favorite_movies
- My favorite moviesget_current_location
- Where I am currentlyget_preferences
- Personal preferences and work styleget_all
- Get all available data at onceget_section
- Get a specific section by nameThis is version 0.1 of Daemon. I plan to expand it with more endpoints, real-time updates, and tons more. So many ideas.
I'm also working on a full guide on how to set this up for yourself or any other entity that you think needs an API.
The daemon.md file updates are synced via a simple update script that parses the markdown and uploads to Cloudflare KV. And I can actually just give Kai (my digital assistant) verbal updates and he makes all the changes and pushes them within a couple of seconds!
Kai retrieved the header image from my "AI's Predictable Path" post and created all the diagrams you see in this post automatically based on the text. If you want to read more about that, check out my personal AI infrastructure post.