Getting Started
Prerequisites
- Emacs -- any recent version with built-in org-mode
- Python 3.10+
- Linux or macOS -- Windows works under WSL; native Windows has no file locking
Installing Emacs
Org-mode ships with Emacs, so there's nothing extra to install beyond Emacs itself.
macOS:
brew install emacs
Ubuntu / Debian / WSL:
sudo apt install emacs-nox
Fedora:
sudo dnf install emacs-nox
Arch:
sudo pacman -S emacs-nox
The -nox variant is recommended since spacecadet doesn't need a GUI.
Installation
git clone https://github.com/jamesdp3/spacecadet.git
cd spacecadet
./setup.sh
The setup script:
- Checks that
emacsandpython3are in your PATH - Installs the
mcpPython package - Verifies the Emacs configuration loads correctly
- Prints configuration instructions
Configuration
Claude Desktop
Add to your MCP settings file (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"spacecadet": {
"command": "python3",
"args": ["/path/to/spacecadet/server.py"]
}
}
}
Replace /path/to/spacecadet with the actual path where you cloned the repo.
Claude Code
claude mcp add spacecadet python3 /path/to/spacecadet/server.py
Task storage
On first run, spacecadet automatically creates ~/spacecadet-tasks/tasks.org and saves this path to .spacecadet.conf (in the project root). Tasks persist across restarts.
The directory is resolved in this order:
SPACECADET_ORG_DIRenvironment variable -- highest priority.spacecadet.conffile -- persisted from previous run~/spacecadet-tasks/-- default on first run
Using a custom directory
To use an existing org directory (e.g. your personal org-mode files):
export SPACECADET_ORG_DIR=~/org
Or pass it in your MCP client config:
{
"mcpServers": {
"spacecadet": {
"command": "python3",
"args": ["/path/to/spacecadet/server.py"],
"env": {
"SPACECADET_ORG_DIR": "/home/you/org"
}
}
}
}
You can also edit .spacecadet.conf directly -- it contains a single line with the absolute path to the org directory.
Cloud sync
Point SPACECADET_ORG_DIR at a cloud-synced folder to access your tasks from any machine:
| Service | Example path |
|---|---|
| iCloud | ~/Library/Mobile Documents/com~apple~CloudDocs/org |
| Dropbox | ~/Dropbox/org |
| Google Drive | ~/Google Drive/My Drive/org |
| OneDrive | ~/OneDrive/org |
| Syncthing | ~/Sync/org |
Since tasks are plain .org text files, any file-syncing service works. If you already use org-mode, point spacecadet at your existing org directory and it will read your files directly.
Multiple machines
Install spacecadet on each machine and set SPACECADET_ORG_DIR to the same synced folder. Each instance runs its own Emacs daemon independently -- there are no server-side dependencies or databases to coordinate.
Task states
Tasks follow this workflow:
TODO -> NEXT -> WAITING -> DONE
-> CANCELLED
Priorities
| Priority | Meaning |
|---|---|
| A | Highest priority |
| B | High priority |
| C | Default priority |
| D | Low priority |