Skip to content

Repository files navigation

pulse

CI License: MIT Go tests

your notifications are fine drowning you.

a personal ai agent that lives on your machine. not in the cloud. not on someone's server. yours.

landing - github


pulse landing

the problem

38 pings a day. 29 are ci failures you already know about. 3 are mentions you'll miss. you don't have a notification problem. you have a filter problem. pulse fixes it.

what it does

  • remembers you - sqlite on disk. survives restarts. it knows your focus, your projects, what you care about and what you ignore. tell it once. it knows forever. or until you tell it to forget.
  • connects accounts - github is wired. gmail and calendar are next. each connector feeds the same pipeline.
  • thinks - bring your own key. any openai-compatible provider. without an llm, pattern matching. with one, it reasons.
  • stays yours - your data never leaves. no telemetry. no phone home. no account. sqlite, json, one binary.

why not just X

slack notifications gmail filters pulse
learns what you care about no no yes
works across services no, siloed gmail only github + gmail + calendar
shows you less, not more no no yes
runs on your machine no no yes
works without an llm n/a n/a yes (pattern mode)
remembers context no no yes (sqlite)

architecture

two languages. one binary.

rust core (the brain)          go shell (the hands)
+------------------+          +------------------+
| filtering        |          | http server      |
| sqlite memory    |<--json-->| web ui           |
| llm orchestration|          | cli              |
| digest builder   |          | connectors       |
+------------------+          +------------------+
         |                            |
         +------ shared sqlite -------+

go calls rust. they share sqlite and json. no grpc, no protobuf, no microservices. two languages because each does what it's best at. if you can't tell why that's interesting, this isn't for you.

install

# rust core
cd rust-core && cargo build --release
cp target/release/pulse-core ~/.pulse/

# go shell
cd .. && go build -o pulse ./cmd/pulse/

cli

pulse connect github ghp_xxxx     # connect a service
pulse digest                       # get your filtered summary
pulse ask "what did i miss"        # ask anything
pulse remember focus "ship v1"     # store memory
pulse memory                       # show what it remembers
pulse serve                        # web ui on localhost:9090

web ui

pulse web ui

pulse serve
# open http://localhost:9090

digest at the top. ask anything. connect services. memory persists across restarts.

tests

123 tests. 58.1% coverage. all pass.

go test ./... -count=1

stack

rust go sqlite serde rusqlite reqwest stdlib openai-compatible single binary no build step

why

every notification tool shows you more. inbox, timeline, unread count. none of them know what you care about. they just show more. pulse shows you less. the right less.

and it's yours. not a saas. not a freemium tier. not a data pipeline to someone's dashboard. your agent, your data, your machine.

contributing

see CONTRIBUTING.md. we welcome contributions of all kinds - bug fixes, new patterns, transport support, docs.

good first issues are labeled good first issue.

license

MIT

About

connect everything. your ai does the rest.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages