Self-hosted personal-data context layer for agents (MCP)
Project description
The self-hosted personal-data context layer for your agent.
pulseagent.dev · Documentation · Contributing
Ingest curated sources into a local store and Obsidian-style vault, then expose them over MCP so your agent does the reasoning — all self-hosted. Pulse does not call an LLM itself.
Pulse is still experimental and in active testing, so expect some rough edges and occasional changes. It is best suited for early adopters who are comfortable self-hosting.
Install
Install Script
curl -fsSL https://pulseagent.dev/install.sh | bash
Pip
pipx install pulse-agent # or: uv tool install pulse-agent
Docker
docker pull ghcr.io/jeff7712/pulse:3.1.1
docker run -d --name pulse -p 8000:8000 \
-v pulse-config:/config -v pulse-data:/data \
ghcr.io/jeff7712/pulse:3.1.1 pulse onboard
From a clone: docker build -t pulse -f Dockerfile . or docker compose up --build -d.
Quickstart — Docker for more details.
Defaults (native install): config under ~/.config/pulse, data under ~/.local/share/pulse (override with PULSE_CONFIG_DIR). Next: pulse configure → pulse init → pulse run — see Quickstart.
Documentation
Documentation lives under docs/ in this repository, or pulseagent.dev/docs.
Paths and environment: Standalone app, CLI commands, and the MCP server use PULSE_DATABASE_PATH. That variable selects the SQLite event store; use PULSE_VAULT_PATH for vault markdown. Override the config directory with PULSE_CONFIG_DIR (default finds .config/pulse.toml under ~/.config/pulse). pulse and pulse-mcp read the same variables; day boundaries and scheduling use PULSE_TIMEZONE — see the Operations runbook.
Optional: local semantic search (pulse-agent[semantic], pulse embed) and scheduled proactive review ([proactive], pulse review) — see the configuration reference.
MCP
Use pulse-mcp with Claude Code, Cursor, OpenClaw, etc. Setup, client JSON, tools, and resources: MCP agent setup. Agent skills: skills/ (pulse-review, pulse-recall).
Send this to your agent:
Read https://raw.githubusercontent.com/JEFF7712/pulse/main/docs/self-hosting/mcp-agent-setup.md and follow every step to install Pulse (pulse-agent), ensure pulse.toml exists, and register pulse-mcp in my MCP settings for this machine.
Develop
uv sync --group dev && uv run pytest
Layout and contributor workflow: Contributing.
pulseagent.dev | PyPI | GitHub
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pulse_agent-3.1.1.tar.gz.
File metadata
- Download URL: pulse_agent-3.1.1.tar.gz
- Upload date:
- Size: 91.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f65c3c68b0ddd0c9ae4ee9a4f0cf0cd867401173ac2805b1739c89aa575d011
|
|
| MD5 |
6043996c0a007d97048a0f2e6bff7190
|
|
| BLAKE2b-256 |
76383ec7fcdbdaebd5b69f3f311c2e2624b07c15ef2f03a6c780f704a0766818
|
Provenance
The following attestation bundles were made for pulse_agent-3.1.1.tar.gz:
Publisher:
release-publish.yml on JEFF7712/pulse
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulse_agent-3.1.1.tar.gz -
Subject digest:
1f65c3c68b0ddd0c9ae4ee9a4f0cf0cd867401173ac2805b1739c89aa575d011 - Sigstore transparency entry: 2185309378
- Sigstore integration time:
-
Permalink:
JEFF7712/pulse@af266ae32b6bbb02c702c5ab2b81af3e66bb0224 -
Branch / Tag:
refs/tags/v3.1.1 - Owner: https://github.com/JEFF7712
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-publish.yml@af266ae32b6bbb02c702c5ab2b81af3e66bb0224 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pulse_agent-3.1.1-py3-none-any.whl.
File metadata
- Download URL: pulse_agent-3.1.1-py3-none-any.whl
- Upload date:
- Size: 121.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89a3d78614687a0d361bbf132ac264d2d0ab77b5e78792896b9f3cd2d8ab6810
|
|
| MD5 |
16921f707bcc74dca485911117da3717
|
|
| BLAKE2b-256 |
720f9b7d8449bde871a7dbac867d0e6eab7faa842905832e1b7ff3b92c722665
|
Provenance
The following attestation bundles were made for pulse_agent-3.1.1-py3-none-any.whl:
Publisher:
release-publish.yml on JEFF7712/pulse
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulse_agent-3.1.1-py3-none-any.whl -
Subject digest:
89a3d78614687a0d361bbf132ac264d2d0ab77b5e78792896b9f3cd2d8ab6810 - Sigstore transparency entry: 2185309473
- Sigstore integration time:
-
Permalink:
JEFF7712/pulse@af266ae32b6bbb02c702c5ab2b81af3e66bb0224 -
Branch / Tag:
refs/tags/v3.1.1 - Owner: https://github.com/JEFF7712
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-publish.yml@af266ae32b6bbb02c702c5ab2b81af3e66bb0224 -
Trigger Event:
push
-
Statement type: