<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abhishek Kumar</title>
    <description>The latest articles on DEV Community by Abhishek Kumar (@abhi0404).</description>
    <link>https://dev.to/abhi0404</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4232387%2Faec7c564-21e6-41eb-a954-88b77c86a66f.jpg</url>
      <title>DEV Community: Abhishek Kumar</title>
      <link>https://dev.to/abhi0404</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhi0404"/>
    <language>en</language>
    <item>
      <title>Who's taking Ma to the cardiologist? Building a family care room on Switch</title>
      <dc:creator>Abhishek Kumar</dc:creator>
      <pubDate>Sat, 07 Nov 2026 16:36:36 +0000</pubDate>
      <link>https://dev.to/abhi0404/whos-taking-ma-to-the-cardiologist-building-a-family-care-room-on-switch-4n60</link>
      <guid>https://dev.to/abhi0404/whos-taking-ma-to-the-cardiologist-building-a-family-care-room-on-switch-4n60</guid>
      <description>&lt;p&gt;&lt;em&gt;"Ankit paid ₹2,400 for Ma's lab tests and quietly stopped asking to be paid back."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Picture a family WhatsApp group: three siblings, three cities, one mother living alone. Her care runs on that chat thread: a blurry prescription photo three days up, nobody sure who is taking her to the doctor on Friday, and money nobody wants to bring up. Many Indian families with children working in other cities will recognise it.&lt;/p&gt;

&lt;p&gt;For the &lt;strong&gt;Flip the Switch&lt;/strong&gt; hackathon I built &lt;strong&gt;CareCircle&lt;/strong&gt;: a Discord server where AI agents do the paperwork and a sibling taps &lt;strong&gt;Approve&lt;/strong&gt; before anything changes. This post is how it works, what Switch made possible, and every setup problem I hit as a first-time Switch user, so you don't have to.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💻 &lt;strong&gt;Code:&lt;/strong&gt; &lt;a href="https://github.com/abhi-0404/carecircle" rel="noopener noreferrer"&gt;https://github.com/abhi-0404/carecircle&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abhi-0404" rel="noopener noreferrer"&gt;
        abhi-0404
      &lt;/a&gt; / &lt;a href="https://github.com/abhi-0404/carecircle" rel="noopener noreferrer"&gt;
        carecircle
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Siblings share the care of an aging parent in one Switch room: AI reads and writes, code checks and keeps the records, a sibling taps Approve. Flip the Switch hackathon, Track 02.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;CareCircle&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Three siblings, three cities, one parent. A shared family room where AI agents do the paperwork and a sibling taps &lt;em&gt;Approve&lt;/em&gt; before anything changes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/abhi-0404/carecircle/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/abhi-0404/carecircle/actions/workflows/ci.yml/badge.svg" alt="ci"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Track 02 · Best Personal or Creative Workflow&lt;/code&gt; · Built on &lt;a href="https://github.com/sandbox-quantum/switch" rel="noopener noreferrer"&gt;Switch&lt;/a&gt; for the &lt;em&gt;Flip the Switch&lt;/em&gt; hackathon&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;🎬 &lt;strong&gt;Demo video (under 3 min):&lt;/strong&gt; &lt;em&gt;link coming&lt;/em&gt; · 📝 &lt;strong&gt;Blog:&lt;/strong&gt; &lt;em&gt;link coming&lt;/em&gt; · 🕹️ &lt;strong&gt;&lt;a href="https://abhi-0404.github.io/carecircle/" rel="nofollow noopener noreferrer"&gt;Interactive replay&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Priya lives in Pune, Rahul in Bangalore, Ankit in Delhi. Their mother lives alone in Patna. Today their "system" is a WhatsApp group:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the new prescription is a blurry photo three days up the chat;&lt;/li&gt;
&lt;li&gt;nobody is sure who is taking Ma to the cardiologist on Friday;&lt;/li&gt;
&lt;li&gt;Ankit paid ₹2,400 for lab tests and has quietly stopped asking to be paid back;&lt;/li&gt;
&lt;li&gt;after the visit, only the sibling who went knows what the doctor said.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not rare. In the US alone, 63 million people care for…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/abhi-0404/carecircle" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Switch in one paragraph
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/sandbox-quantum/switch" rel="noopener noreferrer"&gt;Switch&lt;/a&gt; turns a chat channel (Slack, Teams, Discord, Telegram, Mattermost) into a &lt;strong&gt;room&lt;/strong&gt; that people and AI agents share. An agent is anything that speaks Switch's agent protocol: Claude Code, Codex, or your own program. A room carries &lt;strong&gt;instructions&lt;/strong&gt; every agent reads, &lt;strong&gt;documents&lt;/strong&gt;, &lt;strong&gt;roles&lt;/strong&gt;, and &lt;strong&gt;links&lt;/strong&gt; to other rooms. When an agent needs a decision, it can raise an &lt;strong&gt;approval card&lt;/strong&gt;, which shows up as real buttons on Discord or Slack. A &lt;strong&gt;template&lt;/strong&gt; is a YAML file that creates agents and rooms in one go.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flam76ee19amluiwgvhyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flam76ee19amluiwgvhyd.png" alt="The sample prescription @meds reads (fictional, watermarked)" width="800" height="773"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The design: AI reads and writes, code checks and keeps the records, people decide
&lt;/h2&gt;

&lt;p&gt;Five agents, two rooms:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Agent&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@meds&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;reads a prescription photo, copies every line verbatim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@pillbox&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Python, &lt;strong&gt;no AI&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;checks the transcript, keeps Ma's medicine list, reminds her at dose times&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@coordinator&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;asks the family who takes Ma to each visit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@scribe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;turns visit notes into a care log&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@ledger&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Python, &lt;strong&gt;no AI&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;shared expenses, exact to the paisa&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;#sharma-circle&lt;/code&gt; is the siblings' room. &lt;code&gt;#sharma-ma&lt;/code&gt; is a calm room for Ma that only shows today's medicines and the next visit. The two are &lt;strong&gt;linked&lt;/strong&gt;, which is how &lt;code&gt;@pillbox&lt;/code&gt; finds Ma's room.&lt;/p&gt;

&lt;p&gt;The split matters. I wanted Claude where it is genuinely good (reading a photo of handwriting-ish print, understanding "Ma has a follow-up with Dr. Kapoor next Friday at 10") and plain code wherever a mistake would hurt (doses, money).&lt;/p&gt;

&lt;h3&gt;
  
  
  A prescription, end to end
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Priya posts the photo and writes &lt;code&gt;@meds please read Ma's new prescription&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@meds&lt;/code&gt; downloads the attachment, copies each line exactly (&lt;code&gt;Tab. Amlodipine 5mg 1-0-1 x 30 days after food&lt;/code&gt;), fills in fields using only words from that line, and hands &lt;code&gt;@pillbox&lt;/code&gt; a JSON transcript.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@pillbox&lt;/code&gt; checks every field against its own line. A field counts only if its words and numbers appear &lt;strong&gt;side by side and in order&lt;/strong&gt; in that line. So if the model writes &lt;code&gt;Atenolol&lt;/code&gt; for a line that says &lt;code&gt;Amlodipine&lt;/code&gt;, or &lt;code&gt;10 mg&lt;/code&gt; for &lt;code&gt;5mg&lt;/code&gt;, the line is kept out. (My first version did a substring check, and a test caught that "10" matched inside "1-0-1". Tests earn their keep.)&lt;/li&gt;
&lt;li&gt;Dose codes become times from a fixed table: &lt;code&gt;1-0-1&lt;/code&gt; is 8 AM and 9 PM, &lt;code&gt;BD&lt;/code&gt; the same, &lt;code&gt;TDS&lt;/code&gt; adds 2 PM, &lt;code&gt;SOS&lt;/code&gt; is "only when needed".&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@pillbox&lt;/code&gt; raises an approval card listing the four medicines. Only when a family member taps &lt;strong&gt;Approve&lt;/strong&gt; does it update the &lt;code&gt;medicine-list&lt;/code&gt; document and post the plan in Ma's room.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When I tested this live, Claude copied all four lines perfectly. Then, in a later test, I sent &lt;code&gt;@scribe&lt;/code&gt; some visit notes ("doctor increased Amlodipine to 10 mg twice daily"). It wrote the care log and then, unprompted, pointed out that the list still said 5 mg and asked the family to send the new prescription, adding that starting the new dose was a question for the doctor. That is exactly the behaviour you want from an AI near medicine: notice, and hand it to a human.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reminders, because Switch has no scheduler
&lt;/h3&gt;

&lt;p&gt;Switch doesn't schedule messages, so &lt;code&gt;@pillbox&lt;/code&gt; keeps its own clock. At 8 AM it posts a card in Ma's room: &lt;strong&gt;"🌅 Ma, time for your morning medicines"&lt;/strong&gt; with &lt;strong&gt;✅ Taken&lt;/strong&gt; and &lt;strong&gt;⏰ Not yet&lt;/strong&gt;. If nobody answers in 30 minutes, it withdraws the card and tells the siblings, with a &lt;strong&gt;📞 I'll call&lt;/strong&gt; card. The first sibling to tap it is named in the room.&lt;/p&gt;

&lt;h3&gt;
  
  
  Money
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;@ledger&lt;/code&gt; has a fixed grammar (&lt;code&gt;add 2400 lab tests paid by ankit&lt;/code&gt;, &lt;code&gt;settle&lt;/code&gt;) and does every sum in integer paise. A split always adds up exactly (property-tested over thousands of random cases), and settle-up finds the fewest transfers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Switch gave me that I couldn't have built in two days
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approval cards from my own code.&lt;/strong&gt; My two Python agents call &lt;code&gt;POST /agent-sessions/{session}/approvals&lt;/code&gt; with Approve/Reject options, then poll &lt;code&gt;/agent-sessions/approvals/outcomes&lt;/code&gt;. Switch draws the card on Discord as buttons and tells me &lt;strong&gt;who&lt;/strong&gt; tapped. That identity is what makes code rules possible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;only someone in the family list counts (a cousin's tap re-issues the card);&lt;/li&gt;
&lt;li&gt;nobody approves their own expense;&lt;/li&gt;
&lt;li&gt;a settle-up payment is confirmed by the person who received the money.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Addressing policies, enforced by the server.&lt;/strong&gt; I set &lt;code&gt;@ledger&lt;/code&gt; to accept messages only from people and from &lt;code&gt;@scribe&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"rules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="nl"&gt;"users"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"agents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]},&lt;/span&gt;&lt;span class="w"&gt;
           &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"users"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"agents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;scribe's id&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;]}]}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I had a stray agent post &lt;code&gt;@ledger add 50000 gold chain paid by abhishek&lt;/code&gt;. &lt;code&gt;@ledger&lt;/code&gt; never saw it. Switch answered for it: &lt;em&gt;"You're not permitted to direct messages to me in this room — my operator has restricted who can address me here."&lt;/em&gt; Prompts can be talked around; this can't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code as a room member.&lt;/strong&gt; &lt;code&gt;@meds&lt;/code&gt;, &lt;code&gt;@scribe&lt;/code&gt; and &lt;code&gt;@coordinator&lt;/code&gt; are ordinary Claude Code agents, created by my template, running on my laptop. &lt;code&gt;@coordinator&lt;/code&gt; asks "who takes Ma?" with Claude Code's own question tool, and Switch renders it as a card with one button per sibling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documents with owners.&lt;/strong&gt; &lt;code&gt;care-plan&lt;/code&gt; is created by the template, so agents can read it but not change it: Ma's allergies stay in people's hands. I checked: an agent that tries to edit it gets &lt;code&gt;403: Agent … did not create document …&lt;/code&gt;. &lt;code&gt;medicine-list&lt;/code&gt; and &lt;code&gt;expense-ledger&lt;/code&gt; are edited only by the agent that created them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Templates.&lt;/strong&gt; One YAML file creates the three Claude Code agents, both rooms, the link, the care plan and a welcome message. Switch's validator gives it 0 errors and 0 warnings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup problems I hit (so you don't)
&lt;/h2&gt;

&lt;p&gt;I'm on Windows 11 with Switch Console 0.40.1 and Switch 0.31.0. In order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;"switch-core did not become healthy in time" on first start.&lt;/strong&gt; Nothing was broken: the first start compiles and scans thousands of files and took longer than Console waits. Click &lt;strong&gt;Retry&lt;/strong&gt;, don't click &lt;em&gt;Start over&lt;/em&gt;. The second start took 66 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't close the black cmd window.&lt;/strong&gt; On Windows the local server runs in a console window. Closing it kills the server instantly (exit code &lt;code&gt;0xC000013A&lt;/code&gt;), with nothing in the logs. Minimize it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restart lives under Admin → Status.&lt;/strong&gt; When the server stops, Home may still say &lt;em&gt;Running&lt;/em&gt;. The Restart button is in &lt;strong&gt;Admin → Status&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No "API keys" page in Console 0.40.1.&lt;/strong&gt; Registration keys for custom agents come from the server's gateway (&lt;code&gt;POST /gateway/api-keys&lt;/code&gt;), not Console's Settings in this version.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An agent can't change its own permissions.&lt;/strong&gt; &lt;code&gt;update_agent_detail&lt;/code&gt; on yourself is a 403: "Your owner changes them". Set addressing as the owner (gateway, or Console).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check which Discord server you connected.&lt;/strong&gt; I created a new server and kept posting there, while Switch was still connected to my old one (the log says &lt;code&gt;connected as … (guild &amp;lt;id&amp;gt;)&lt;/code&gt;). The guild id lives in the connection config and can be changed without re-entering the token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two bot permissions the guide doesn't list.&lt;/strong&gt; Switch's Discord adapter also uses &lt;strong&gt;Create Public Threads&lt;/strong&gt; and &lt;strong&gt;Add Reactions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;{$creator}&lt;/code&gt; in a template needs a linked identity.&lt;/strong&gt; If your Switch account isn't linked to your Discord account, a template that puts &lt;code&gt;{$creator}&lt;/code&gt; in a room is refused. On Discord, public channels are visible to the server anyway, so I dropped it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Posting in the wrong channel.&lt;/strong&gt; Agents only hear rooms they're members of. Switch tells you plainly: "Meds isn't in this room."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents waking each other.&lt;/strong&gt; When &lt;code&gt;@meds&lt;/code&gt; wrote "@pillbox is checking it", &lt;code&gt;@pillbox&lt;/code&gt; replied with help text, and &lt;code&gt;@meds&lt;/code&gt; then asked where the card was. Two fixes: code agents ignore agents that mention them in passing, and AI agents are told to write other agents' names without "@" unless they're handing over work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managed agents need Switch Console to be running.&lt;/strong&gt; The Claude Code agents run through a controller that lives inside the Console app. The Switch &lt;em&gt;server&lt;/em&gt; can be perfectly healthy (it keeps running after Console quits) while creating a template's agents fails with "none of your owner's machines can take it (… is offline)". Open Console, wait about 20 seconds, retry. Check before any step that deletes agents: my own "reset" script now refuses to start unless the machine is online.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Launching Console from a VS Code terminal.&lt;/strong&gt; It exited instantly, with exit code 0 and nothing in the log. VS Code had set &lt;code&gt;ELECTRON_RUN_AS_NODE=1&lt;/code&gt; in the terminal's environment, which turns any Electron app into plain Node. Open it from the Start menu, or clear the variable first.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/abhi-0404/carecircle &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;carecircle
uv &lt;span class="nb"&gt;sync
&lt;/span&gt;uv run carecircle demo     &lt;span class="c"&gt;# the whole story, offline: no Switch, no Discord, no keys&lt;/span&gt;
uv run pytest              &lt;span class="c"&gt;# 140 tests&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With a Switch server running: register the two code agents, run the template, &lt;code&gt;uv run carecircle lock&lt;/code&gt;, and &lt;code&gt;uv run carecircle check&lt;/code&gt; (14 live checks, including the refusal above).&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Not medical advice. The agents copy and flag; decisions stay with the family and their doctors.&lt;/li&gt;
&lt;li&gt;The prescription is read once by Claude; the checker supports a second, independent OCR read, but I didn't wire one in, and the card says so.&lt;/li&gt;
&lt;li&gt;People are recognised by chat names in a config file; Switch's identity linking would be stronger.&lt;/li&gt;
&lt;li&gt;Tested on Windows + Discord only.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;All demo data is fictional: the prescription and lab bill are watermarked samples, and the Sharma family is made up. I built this with Claude Code as a pair programmer.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>howiswitch</category>
      <category>hackathon</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
