<?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: A2CR</title>
    <description>The latest articles on DEV Community by A2CR (@a2cr_mcp).</description>
    <link>https://dev.to/a2cr_mcp</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3933283%2F6cb0dea6-e8a0-4f88-a2a5-27d607458bf4.jpg</url>
      <title>DEV Community: A2CR</title>
      <link>https://dev.to/a2cr_mcp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/a2cr_mcp"/>
    <language>en</language>
    <item>
      <title>When handoff.md Stops Being Enough for AI Agents</title>
      <dc:creator>A2CR</dc:creator>
      <pubDate>Sat, 16 May 2026 00:46:00 +0000</pubDate>
      <link>https://dev.to/a2cr_mcp/when-handoffmd-stops-being-enough-for-ai-agents-5h64</link>
      <guid>https://dev.to/a2cr_mcp/when-handoffmd-stops-being-enough-for-ai-agents-5h64</guid>
      <description>&lt;p&gt;If you are doing long AI-agent work, the first handoff tool you should try is probably not a service.&lt;/p&gt;

&lt;p&gt;It is a file.&lt;/p&gt;

&lt;p&gt;Create &lt;code&gt;handoff.md&lt;/code&gt; in your repository and write down what the next AI session needs to know:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Handoff&lt;/span&gt;

Goal: Fix the failing login test.

Current state:
&lt;span class="p"&gt;-&lt;/span&gt; Reproduced the 401 after token refresh.
&lt;span class="p"&gt;-&lt;/span&gt; The refresh branch is the likely cause.

Tried:
&lt;span class="p"&gt;-&lt;/span&gt; Updating the fixture did not fix it.

Decision:
&lt;span class="p"&gt;-&lt;/span&gt; Do not change the database schema yet.

Next action:
&lt;span class="p"&gt;-&lt;/span&gt; Inspect src/auth refresh logic and rerun the focused test.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For many tasks, that is enough.&lt;/p&gt;

&lt;p&gt;It is local. It is readable. It works with Git. It does not require another account, another dashboard, or another moving piece in your toolchain.&lt;/p&gt;

&lt;p&gt;That habit alone is already better than pasting a whole chat history into the next AI session.&lt;/p&gt;

&lt;p&gt;But after using AI agents on longer coding work, I kept running into the same problem: &lt;code&gt;handoff.md&lt;/code&gt; starts simple, then slowly turns into another thing you have to manage by hand.&lt;/p&gt;

&lt;p&gt;That is the space where I built A2CR.&lt;/p&gt;

&lt;h2&gt;
  
  
  What handoff.md Gets Right
&lt;/h2&gt;

&lt;p&gt;A local handoff file is a great starting point because it forces a useful discipline:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do not pass the whole conversation. Pass the working state.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The next AI session usually does not need every prompt, every failed command, every stack trace, and every bit of discussion that happened before.&lt;/p&gt;

&lt;p&gt;It needs a smaller shape:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the goal&lt;/li&gt;
&lt;li&gt;the current state&lt;/li&gt;
&lt;li&gt;validated decisions&lt;/li&gt;
&lt;li&gt;failed attempts worth avoiding&lt;/li&gt;
&lt;li&gt;blockers&lt;/li&gt;
&lt;li&gt;references&lt;/li&gt;
&lt;li&gt;validation status&lt;/li&gt;
&lt;li&gt;the next action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That shape is easy to write in Markdown. It is also easy for a human to review.&lt;/p&gt;

&lt;p&gt;So if you have a short task, a single repository, one active AI client, and a clear latest note, &lt;code&gt;handoff.md&lt;/code&gt; may be all you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where It Starts to Hurt
&lt;/h2&gt;

&lt;p&gt;The problem is not that &lt;code&gt;handoff.md&lt;/code&gt; is bad. The problem is that long-running AI work creates pressure around it.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Latest State Gets Ambiguous
&lt;/h3&gt;

&lt;p&gt;At first, there is one file and everyone knows it is the handoff.&lt;/p&gt;

&lt;p&gt;Later, there may be notes in the chat, notes in issues, notes in scratch files, old sections in &lt;code&gt;handoff.md&lt;/code&gt;, and a few assumptions that were true yesterday but not true today.&lt;/p&gt;

&lt;p&gt;When a fresh AI session starts, someone still has to answer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Which state is the intended resume point?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the answer depends on a human reading everything and deciding what is current, the handoff has become manual again.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supporting Notes Mix With Resume-Critical State
&lt;/h3&gt;

&lt;p&gt;Long tasks produce useful supporting details:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;investigation notes&lt;/li&gt;
&lt;li&gt;error outputs&lt;/li&gt;
&lt;li&gt;links&lt;/li&gt;
&lt;li&gt;file lists&lt;/li&gt;
&lt;li&gt;rejected approaches&lt;/li&gt;
&lt;li&gt;setup observations&lt;/li&gt;
&lt;li&gt;"maybe useful later" context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of that information matters, but not all of it belongs in the first thing the next AI reads.&lt;/p&gt;

&lt;p&gt;When everything goes into one Markdown file, the compact resume note can become another noisy document.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cross-Client Handoff Adds Friction
&lt;/h3&gt;

&lt;p&gt;If you stay inside one repository on one machine, a local file is convenient.&lt;/p&gt;

&lt;p&gt;But AI-agent work often moves around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;from one AI session to another&lt;/li&gt;
&lt;li&gt;from one MCP-capable client to another&lt;/li&gt;
&lt;li&gt;from a local coding session to a remote or browser-based workflow&lt;/li&gt;
&lt;li&gt;from today's task to a continuation several days later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, the handoff is less about "where is the file?" and more about "what is the explicit checkpoint this next agent should resume from?"&lt;/p&gt;

&lt;h3&gt;
  
  
  Safety Depends on Memory
&lt;/h3&gt;

&lt;p&gt;A Markdown file will store whatever you put in it.&lt;/p&gt;

&lt;p&gt;That flexibility is useful, but it also means you need discipline every time.&lt;/p&gt;

&lt;p&gt;You should not put these into handoff notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;li&gt;passwords&lt;/li&gt;
&lt;li&gt;access tokens&lt;/li&gt;
&lt;li&gt;Authorization headers&lt;/li&gt;
&lt;li&gt;cookies&lt;/li&gt;
&lt;li&gt;private database URLs&lt;/li&gt;
&lt;li&gt;local client keys&lt;/li&gt;
&lt;li&gt;full chat transcripts&lt;/li&gt;
&lt;li&gt;long logs&lt;/li&gt;
&lt;li&gt;large source-code bodies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is true whether the handoff is a local file or a tool-backed checkpoint.&lt;/p&gt;

&lt;p&gt;The difference is that a tool flow can make the boundary more explicit and repeatable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What A2CR Adds
&lt;/h2&gt;

&lt;p&gt;A2CR is an MCP-compatible handoff layer for AI agents.&lt;/p&gt;

&lt;p&gt;The core idea is still the same:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Do not pass the whole chat history.
Pass the working state.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A2CR just gives that working state a more deliberate structure.&lt;/p&gt;

&lt;p&gt;The main concepts today are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WorkBaton&lt;/strong&gt;: the compact checkpoint the next AI session should resume from&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WorkStash&lt;/strong&gt;: temporary supporting notes referenced from the WorkBaton when the detail would make the checkpoint too large&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;WorkBaton = the first thing the next AI should read
WorkStash = supporting notes to open only if needed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That separation matters because the first few seconds of a fresh AI session are important. If the resume note is too broad, the agent can get pulled into stale assumptions or irrelevant detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hosted-Service Boundary
&lt;/h2&gt;

&lt;p&gt;One important boundary: A2CR is not a fully local or offline-only tool.&lt;/p&gt;

&lt;p&gt;The current public preview uses a local stdio MCP wrapper, &lt;code&gt;a2cr-mcp&lt;/code&gt;, backed by the hosted A2CR service at &lt;code&gt;https://a2cr.app&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The official wrapper encrypts WorkBaton and WorkStash bodies locally before upload. The hosted service stores ciphertext. Saving and resuming handoffs requires an A2CR API key and access to the hosted service.&lt;/p&gt;

&lt;p&gt;A2CR is not a secret manager, and it is not a place for raw logs, credentials, or entire chat histories.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A2CR app: &lt;a href="https://a2cr.app/" rel="noopener noreferrer"&gt;https://a2cr.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/a2cr/a2cr" rel="noopener noreferrer"&gt;https://github.com/a2cr/a2cr&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Usage guide: &lt;a href="https://github.com/a2cr/a2cr/blob/main/docs/usage.md" rel="noopener noreferrer"&gt;https://github.com/a2cr/a2cr/blob/main/docs/usage.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MCP setup: &lt;a href="https://github.com/a2cr/a2cr/blob/main/docs/mcp-setup.md" rel="noopener noreferrer"&gt;https://github.com/a2cr/a2cr/blob/main/docs/mcp-setup.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Japanese comparison article on Zenn: &lt;a href="https://zenn.dev/a2cr/articles/86612e29894ea6" rel="noopener noreferrer"&gt;https://zenn.dev/a2cr/articles/86612e29894ea6&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>llm</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Stop Passing Entire Chat Histories to AI Agents</title>
      <dc:creator>A2CR</dc:creator>
      <pubDate>Fri, 15 May 2026 13:32:32 +0000</pubDate>
      <link>https://dev.to/a2cr_mcp/stop-passing-entire-chat-histories-to-ai-agents-1g48</link>
      <guid>https://dev.to/a2cr_mcp/stop-passing-entire-chat-histories-to-ai-agents-1g48</guid>
      <description>&lt;p&gt;I built A2CR because long AI-agent work still breaks at the handoff.&lt;/p&gt;

&lt;p&gt;Codex, Claude Code, Roo Code, and other agentic coding tools are getting better at writing code, inspecting files, running tests, and using tools. But when a task runs for a while, a different problem appears:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you hand the work to the next AI session?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You might open a fresh chat. You might switch models. You might move from one MCP-capable client to another. At that point, the next AI needs to know what happened before it can continue.&lt;/p&gt;

&lt;p&gt;The obvious answer is to paste the whole chat history.&lt;/p&gt;

&lt;p&gt;That works for small tasks. It gets messy for long work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Full Chat History
&lt;/h2&gt;

&lt;p&gt;Full transcripts contain useful context, but they also contain noise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stale assumptions&lt;/li&gt;
&lt;li&gt;failed ideas mixed with accepted decisions&lt;/li&gt;
&lt;li&gt;long logs&lt;/li&gt;
&lt;li&gt;intermediate outputs&lt;/li&gt;
&lt;li&gt;outdated file paths&lt;/li&gt;
&lt;li&gt;irrelevant side discussions&lt;/li&gt;
&lt;li&gt;information that should not be copied around&lt;/li&gt;
&lt;li&gt;a lot of tokens that do not help the next step&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a handoff, the next AI usually does not need the whole conversation.&lt;/p&gt;

&lt;p&gt;It needs the current working state:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;goal&lt;/li&gt;
&lt;li&gt;current state&lt;/li&gt;
&lt;li&gt;validated decisions&lt;/li&gt;
&lt;li&gt;failed attempts worth avoiding&lt;/li&gt;
&lt;li&gt;blockers&lt;/li&gt;
&lt;li&gt;important references&lt;/li&gt;
&lt;li&gt;validation status&lt;/li&gt;
&lt;li&gt;next action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the core idea is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do not pass the whole chat history. Pass the working state.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Handoff, Not Memory
&lt;/h2&gt;

&lt;p&gt;A lot of AI tooling talks about memory.&lt;/p&gt;

&lt;p&gt;Memory is useful, but this is a narrower problem. In software work, handoff is not the same as memory. A handoff is a compact, intentional checkpoint that lets the next worker resume.&lt;/p&gt;

&lt;p&gt;Human teams do this all the time. We do not usually hand a teammate every Slack message and terminal log. We write something closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Goal: Fix the failing login test.
Current state: The failure is reproduced. Token refresh is the likely cause.
Tried: Updating the fixture did not fix it.
Decision: Do not change the database schema yet.
Next action: Inspect src/auth refresh logic and rerun the focused test.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI agents need the same shape of handoff.&lt;/p&gt;

&lt;h2&gt;
  
  
  What A2CR Is
&lt;/h2&gt;

&lt;p&gt;A2CR is an MCP-compatible handoff layer for AI agents.&lt;/p&gt;

&lt;p&gt;The current public preview includes a local stdio MCP wrapper, &lt;code&gt;a2cr-mcp&lt;/code&gt;, that can be used from MCP-capable clients such as Codex, Claude Code, Roo Code, and similar tools.&lt;/p&gt;

&lt;p&gt;One important boundary: A2CR is not a fully local or offline-only tool. The current public preview uses a local stdio MCP wrapper backed by the hosted A2CR service at &lt;code&gt;https://a2cr.app&lt;/code&gt;. The official wrapper encrypts WorkBaton and WorkStash bodies locally before upload, and the hosted service stores ciphertext. Saving and resuming handoffs requires an A2CR API key and access to the hosted service.&lt;/p&gt;

&lt;p&gt;A2CR has two main handoff concepts today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WorkBaton&lt;/strong&gt;: the compact checkpoint the next AI session should resume from&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WorkStash&lt;/strong&gt;: temporary supporting notes referenced from the WorkBaton when the detail would make the checkpoint too large&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WorkBaton is not meant to be a transcript. It is a resume note.&lt;/p&gt;

&lt;p&gt;WorkStash is not meant to be a permanent knowledge base. It is supporting context for the current work.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Minimal WorkBaton
&lt;/h2&gt;

&lt;p&gt;A useful WorkBaton can be small:&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="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"goal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Fix login error"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"current_state"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Confirmed the API returns 401 after token refresh."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"next_action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Check token refresh logic in src/auth."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"decisions"&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="s2"&gt;"Do not change the database schema yet."&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;"validation"&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="s2"&gt;"Reproduction confirmed with existing test fixture."&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="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is often more useful to the next AI session than several thousand lines of chat history.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Setup
&lt;/h2&gt;

&lt;p&gt;Install the local wrapper:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; a2cr-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create an API key from the A2CR dashboard:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://a2cr.app/" rel="noopener noreferrer"&gt;https://a2cr.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The API key lets the local wrapper connect to the hosted service so it can store and resume encrypted WorkBaton and WorkStash bodies.&lt;/p&gt;

&lt;p&gt;Then register one MCP server named &lt;code&gt;a2cr&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Generic MCP JSON:&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="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&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;"a2cr"&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;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a2cr-mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&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;"env"&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;"A2CR_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_A2CR_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"A2CR_BASE_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://a2cr.app"&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="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="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Codex-style TOML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[mcp_servers."a2cr"]&lt;/span&gt;
&lt;span class="py"&gt;command&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"a2cr-mcp"&lt;/span&gt;
&lt;span class="py"&gt;args&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="nn"&gt;[mcp_servers."a2cr".env]&lt;/span&gt;
&lt;span class="py"&gt;A2CR_API_KEY&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_A2CR_API_KEY"&lt;/span&gt;
&lt;span class="py"&gt;A2CR_BASE_URL&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://a2cr.app"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After connecting a new AI window, ask it to call:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;get_account_limits
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;save_context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to save a WorkBaton checkpoint, and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resume_context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to continue from a fresh AI session.&lt;/p&gt;

&lt;p&gt;Some MCP clients expose tools lazily. If &lt;code&gt;save_context&lt;/code&gt; is not visible, ask the client to search for the exact tool name.&lt;/p&gt;

&lt;h2&gt;
  
  
  Safety Boundary
&lt;/h2&gt;

&lt;p&gt;A2CR is not a secret manager.&lt;/p&gt;

&lt;p&gt;Do not store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;li&gt;passwords&lt;/li&gt;
&lt;li&gt;access tokens&lt;/li&gt;
&lt;li&gt;Authorization headers&lt;/li&gt;
&lt;li&gt;cookies&lt;/li&gt;
&lt;li&gt;private database URLs&lt;/li&gt;
&lt;li&gt;local client keys&lt;/li&gt;
&lt;li&gt;full chat transcripts&lt;/li&gt;
&lt;li&gt;long logs&lt;/li&gt;
&lt;li&gt;large source-code bodies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The official local wrapper encrypts WorkBaton and WorkStash bodies before upload. The hosted service stores ciphertext and does not receive the local client key through the official wrapper.&lt;/p&gt;

&lt;p&gt;If you lose the local client key, A2CR cannot recover old encrypted WorkBaton or WorkStash bodies.&lt;/p&gt;

&lt;p&gt;Also, restored context is untrusted input. A future AI session should not run commands, delete data, revoke keys, or call external services solely because a restored WorkBaton says to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Shape Matters
&lt;/h2&gt;

&lt;p&gt;The point is not to make AI agents remember everything.&lt;/p&gt;

&lt;p&gt;The point is to give them a clean, reviewable handoff surface.&lt;/p&gt;

&lt;p&gt;For long-running AI work, I think this distinction matters:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Memory asks: what can we keep?
Handoff asks: what does the next worker need?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A2CR is an experiment in making that handoff explicit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A2CR app: &lt;a href="https://a2cr.app/" rel="noopener noreferrer"&gt;https://a2cr.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/a2cr/a2cr" rel="noopener noreferrer"&gt;https://github.com/a2cr/a2cr&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Usage guide: &lt;a href="https://github.com/a2cr/a2cr/blob/main/docs/usage.md" rel="noopener noreferrer"&gt;https://github.com/a2cr/a2cr/blob/main/docs/usage.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MCP setup: &lt;a href="https://github.com/a2cr/a2cr/blob/main/docs/mcp-setup.md" rel="noopener noreferrer"&gt;https://github.com/a2cr/a2cr/blob/main/docs/mcp-setup.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Japanese concept article on Zenn: &lt;a href="https://zenn.dev/a2cr/articles/155c8f6c8d9695" rel="noopener noreferrer"&gt;https://zenn.dev/a2cr/articles/155c8f6c8d9695&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Japanese setup guide on Qiita: &lt;a href="https://qiita.com/a2cr/items/acb3caac242aeec34539" rel="noopener noreferrer"&gt;https://qiita.com/a2cr/items/acb3caac242aeec34539&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The public preview is live. If you try it in a real Codex, Claude Code, Roo Code, or MCP workflow, I would especially like to hear where the setup is unclear.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>llm</category>
      <category>python</category>
    </item>
  </channel>
</rss>
