You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 231d633
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: pluto/README.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ You need Python 3.11 or newer.
17
17
18
18
1. In Telegram, message **@BotFather** → `/newbot` → copy the token.
19
19
2. Message **@userinfobot** → copy your numeric user id.
20
-
3. Get at least one AI key: Gemini (aistudio.google.com/apikey), Groq (console.groq.com/keys), Z AI (z.ai) or NVIDIA Nemotron (build.nvidia.com → Get API Key). With more than one, Pluto falls back automatically when one is rate-limited or down. For voice, also get a Sarvam key (dashboard.sarvam.ai).
20
+
3. Get at least one AI key: Gemini (aistudio.google.com/apikey), Groq (console.groq.com/keys), Z AI (z.ai) or NVIDIA Nemotron (build.nvidia.com → Get API Key). With more than one, Pluto falls back automatically when one is rate-limited or down. Voice notes work with your Groq or Gemini key (Sarvam is an optional extra).
21
21
4. Run:
22
22
23
23
```bash
@@ -56,12 +56,14 @@ The tests use a fake assistant and fake Telegram objects, so they need no keys o
56
56
57
57
`/list` open items · `/done 3` · `/snooze 3` (+1 day) · `/delete 3` (forever) · `/forget` (clear chat history) · `/model` (choose which AI thinks first) · `/export` (JSON download of items and chat)
58
58
59
-
## How nudges work
59
+
## How reminders and nudges work
60
60
61
-
- Checked every 30 minutes, never between 22:00 and 08:00 (`QUIET_START/END` in `core.py`).
62
-
- Overdue items: every 6 hours, up to 5 times. Ideas with no deadline: after 3 days, then every 3 days, up to 3 times.
63
-
- Max 5 nudges per 24 hours. Overdue items go first, and items nudged least go first, so nothing is starved.
61
+
- Checked every minute while the bot is running.
62
+
-**A reminder you set always arrives at the time you asked for**, even at night, and doesn't count against any limit.
63
+
- If it's still open afterwards, Pluto nudges again every 6 hours (up to 5 times). Ideas you haven't touched get a nudge after 3 days, then every 3 days (up to 3 times).
64
+
- Those follow-up nudges wait until morning (no follow-ups 22:00–08:00, `QUIET_START/END` in `core.py`) and are capped at 5 per 24 hours.
64
65
- Done / Snooze / Drop buttons on every nudge.
66
+
- Your computer must be awake with `python bot.py` running for reminders to arrive. To get them when your Mac is asleep, deploy it (see below).
65
67
66
68
## Rules built in
67
69
@@ -78,5 +80,5 @@ The bot must be running to nudge.
78
80
## Known limits
79
81
80
82
- Each message sends the last 100 chat messages and your open items (plus 50 recent closed ones) to the model. "What have we discussed" only reaches that far back in the chat; saved items are always included. Add search/embeddings when this gets slow or costly.
81
-
-Check `stt.py` against Sarvam's current docs; the model name and field names are env-configurable.
- AI providers are tried in order Gemini → Groq → Z AI → NVIDIA Nemotron (`PLUTO_PROVIDERS` changes it, and `/model` in chat picks which one goes first; the rest stay as backup). Default models: `gemini-2.5-flash`, `llama-3.3-70b-versatile` (Groq), `glm-4.6` (Z AI), `nvidia/nemotron-3.5-super-vl-120b-a12b` (NVIDIA, with thinking off for quick replies; `NVIDIA_THINKING=1` turns it on); change `PLUTO_MODEL`, `GROQ_MODEL`, `ZAI_MODEL`, `NVIDIA_MODEL` if a provider retires one. Fallback models may phrase replies differently, but the code-side checks (what gets saved, never citing unknown items) apply to all of them.
0 commit comments