Skip to content
HarfullPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Kest

A personal assistant that helps you stay consistent.

Kest lives in Telegram. It keeps track of your workouts, meals, sleep and focus, checks in at the right moments, and talks to you like a steady friend: warm, direct, never preachy. Behind the chat it can read and send email, work with Notion, and connect to hundreds of other tools through a plugin system.

Status: early development. Phases 1 and 2 are largely built: Kest answers text and voice notes in Telegram (owner-only), keeps history and memory in SQLite, runs a persistent scheduler, sets reminders, keeps a task list, reads web pages, and asks before doing anything risky. Phase 3 added the coach: habits, a daily rhythm, a notification budget and a sleep model. Email and Notion integrations come next. See the roadmap.

What makes Kest different

  • Built around consistency, not streaks. Missing a day does not reset your progress or trigger guilt. Kest uses research-backed methods (tiny habits, if-then plans, autonomy-supportive coaching) and a gentle "never miss twice" rule. See the coaching approach.
  • Knows your rhythm. It estimates your sleep from how you use the chat and from simple check-ins, then times its messages around it and respects quiet hours. See sleep modeling.
  • Talks like a person. Not formal, not slangy. See the voice guide.
  • Modular and careful. Every integration is a plugin with a manifest and a risk level. Anything that sends data out or deletes needs your tap on a button, and content from the internet can never talk Kest into acting. Built-in plugins are compiled in; MCP servers are planned. See plugins and security.
  • Easy to host. One static Go binary, one data folder, SQLite inside. Ships with a Pterodactyl egg. See deployment.

How it works

You ──▶ Telegram ──▶ Kest ──▶ OpenRouter (general / transcription / tts models)
                      │
                      ├──▶ Coach engine (habits, sleep model, check-ins)
                      ├──▶ Scheduler (persistent, timezone-aware, quiet hours)
                      └──▶ Plugins (Gmail, SMTP, Notion, MCP servers, ...)

Full design: architecture overview and file structure.

Quick start

You need a Telegram bot token from @BotFather, an OpenRouter API key, and your numeric Telegram user ID.

export KEST_TELEGRAM_TOKEN=123456:abc
export KEST_OPENROUTER_API_KEY=sk-or-...
export KEST_OWNER_ID=123456789
go run ./cmd/kest

Configuration reference: docs/guides/configuration.md. Example files: config.example.toml and .env.example.

Hosting

Documentation

Area Where
Conventions for contributors and AI agents AGENTS.md
Roadmap docs/roadmap.md
Architecture docs/architecture/
Research notes and sources docs/research/
Architecture decision records docs/decisions/
Voice and persona docs/persona/
Guides docs/guides/

Development

make check   # format check, vet, lint, tests
make build   # builds ./bin/kest

Requires Go (version pinned in go.mod) and golangci-lint. Read AGENTS.md before contributing.

Privacy

Kest is single-user and self-hosted. Your data stays in your data directory. Messages are sent to OpenRouter and to the services you connect, and nowhere else. See security.

Not medical advice

Kest is a habit and scheduling aid. It does not diagnose, treat or give medical guidance. Talk to a professional about health concerns.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages