All posts

2 min read

Connecting monday tasks to Claude Code sessions

A way to find the Claude session and merge request behind a monday task after I have moved on.

My tasks live on monday.com and my code gets written in Claude Code, so I kept copying between the two. I tried monday's hosted MCP server first. It was fine for quick reads, but writes went out as whichever account had connected it, @mentions added a duplicate list of names under the post, and line breaks turned into blank gaps. It also knew nothing about my Claude sessions, so a week later I couldn't tell which session had worked on a task or where its merge request was.

So I wrote claude-monday: a small CLI, mon.js, plus a Claude Code skill. It reads and updates tasks through monday's GraphQL API and still calls the MCP server for the parts it does well, such as meetings and board insights. A hook records which session worked on which task and merge request.

Tasks and updates

The CLI uses my own token, so updates come from my account. It can show a dry run before a write. Shortcuts include mine for open tasks and handoff for an update, status change and assignment.

One early bug made task descriptions look complete when they were not. monday's description blocks field returned only the first 25 blocks by default. I changed the description reads to request pages until they have all the blocks. The same fix covers downloading images embedded later in a description.

Finding a session again

The links hook records task IDs, session IDs, branches and merge request links in a local SQLite database. It learns associations from task links in prompts, session names, edited branches and merge requests. It stores IDs and URLs rather than prompt text.

mon.js links <id> shows the connections, and mon.js resume <id> reopens the task's session or starts a named one when there is no session to resume. That depends on the transcript still being available: Claude Code deletes old transcripts after its configured cleanup period.

I also added a task-switch nudge. If a session has at least 60,000 tokens of context and a prompt names only monday items other than the session's own, the hook asks Claude to suggest starting a fresh session. It is a suggestion, so the decision to switch stays with me.

Now, when I return to a task, I can find its linked session and merge request instead of searching for them separately.

Install

/plugin marketplace add pravnyadv/claude-plugins
/plugin install monday@pravnyadv

Then ask Claude to set up monday, or follow the setup instructions in claude-monday.

Keyboard shortcuts

/
Search
ga
About
gp
Projects
gb
Blog
ge
Experience
gc
Contact
help
Terminal commands in search
t
Switch theme
?
This panel
Esc
Close or clear