Releases: ssamssae/cursor-telegram-bridge
Releases · ssamssae/cursor-telegram-bridge
Release list
cursor-telegram-bridge 0.4.0
cursor-telegram-bridge 0.4.0
Brings the public package up to the maintainer's live Cursor bridge as of
2026-09-06. Reliability fixes for long turns and a cleaner phone copy.
- Long turns are no longer re-run. When the 900 s wait passes while Cursor
is still running tools, the bridge keeps waiting (up to
CUB_TUI_WAIT_MAX_SEC, default 2 h) instead of starting a second headless
cursor-agent -pwith the same prompt. If the turn is still going when the
wait ends, you get a one-line report and the answer is delivered later by the
mirror / in-flight recovery. - Typing indicator stays on for the whole turn, including after the bridge
has stopped waiting on a job while Cursor keeps working. - Idle context guard. When no job or turn is running and Cursor's status
line shows context usage at or aboveCUB_CONTEXT_CLEAR_PCT(default 50 %),
the bridge sends/clearitself and tells you once.0turns it off;
CUB_CONTEXT_CLEAR_COOLDOWN_SECspaces the checks. The percentage is also
read correctly from a narrow pane where the status line wraps onto two rows. - Cleaner answers. The first-person English reasoning summary that Cursor
sometimes appends after a non-English final answer is dropped
(CUB_STRIP_TRAILING_REASONING=0keeps it). Dispatch wrappers the bridge
pastes itself are no longer echoed back as "you asked this in the terminal". - No stale re-sends after
/clear. Transcript selection ignores files older
than the job, skips headless transcripts, and does not deliver an old answer
when the session switches, so a fresh session no longer replays a previous
reply. - Startup in-flight recovery runs off the main thread, so polling starts at
once after a restart.
cursor-telegram-bridge 0.3.0
cursor-telegram-bridge 0.3.0
Brings the public package up to the maintainer's live Cursor bridge as of
2026-09-04. The bridge now follows the same contract as the Claude, Grok and
Codex bridges.
/modelfrom Telegram: a button menu (or/model <name>) switches the
Cursor session's model. When Cursor opens its own model picker in the
terminal, the same menu is mirrored to your phone.- Tool-approval prompts send a Run Everything button; tapping it answers
the prompt in the terminal for you. /context,/clearand/statusfrom Telegram.- Full answers: the phone copy is no longer cut to two lines
(CUB_PHONE_MAX_LINES=0by default). - The suggestion bubble is Telegram-only: nothing is appended to the prompt
the model sees, and one final message is sent per user turn. - Safer TUI typing: no keys are sent while an approval overlay or Cursor's
"Waiting" state is on screen; a paste that stays unsubmitted gets its Enter
retried; queued follow-ups count as submitted. - Health snapshot (
cursor-bridge-<name>.health.json) with poll time, queue
depth and worker liveness; in-flight waits survive a bridge restart. - Telegram-origin terminal echo and agent meta lines are dropped from what
comes back to the phone.
v0.2.0
cursor-telegram-bridge 0.2.0
Keeps the public package in line with the maintainer's live Cursor bridge.
- TUI local mirror: turns typed in the
cursortmux session can be sent to
Telegram (CUB_TUI_MIRROR_LOCAL=1). Off by default in this public build.
The first activation baselines the transcript so old history is not dumped.
A mid-turn (tools still running) is held until the text-only answer lands. - Harvest waits for Cursor's
turn_endedmarker, so a finished answer is not
treated as "still busy" for up to 15 minutes. - README documents the mirror switch and repeats that Cursor billing is
unverified.
v0.1.0
cursor-telegram-bridge 0.1.0
First public release. One Telegram chat drives one machine's Cursor session.
- TUI lane pastes into an existing
tmuxsession namedcursor - Headless fallback runs
cursor-agent -pwhen that session is gone - Answers are harvested from Cursor agent transcripts (text-only finals)
- Photos / image files are saved locally and handed to Cursor as a path
- Delivery is a direct Telegram Bot API
sendMessage(no private bus) - The allowed chat id has no default; the process exits if it is unset