simlock
병렬 코딩 에이전트가 동일 시뮬레이터를 놓고 충돌하지 않도록 제어 평면 제공
Baiqiao Zhang은 HKUST 컴퓨터과학·공학 박사과정 학생이며 지도교수는
Baiqiao Zhang is a PhD student in Computer Science and Engineering at HKUST, advised by Prof. Xiaojuan Ma, working on human-AI alignment between developers and AI coding agents.
개발 도구TypeScript · CSSGitHub @SLEEPYBQ온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Co-manage your coding agent's memory: review what it keeps, choose what it uses, audit how it used it
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Co-manage your coding agent's memory: see what it remembers, decide what it keeps, choose what it uses, and audit how it used it.
MemoSync in the middle of a turn. (A) the pre-turn review of long-term memory, (B) the Memory Board, (C) the working memory confirmed for this turn, (D) inline memory citations with a Stop control, (E) the post-turn Memory Use Audit, (F) the per-turn Memory Record.README 전문 보기 ↗https://github.com/user-attachments/assets/488a1e41-5a01-4c01-ac76-5c37b8e764f0
Coding agents keep memory: CLAUDE.md files, notes they extract, lessons from earlier sessions. You rarely see what is in it, what the agent took into this task, or whether it followed it. MemoSync is a local workbench for Claude Code, Codex and Pi that puts that memory on screen.
When a turn doesn't need that much attention, switch to Automatic and the agent handles memory on its own.
Memory is a set of short items. Each has a scope (personal, project or session), a version and a history. The same item shows up in four places during a turn.
Before a turn starts, MemoSync shows the memory changes it proposes, in three groups. Accept, edit, rescope or dismiss each one. Nothing reaches the store until you do.
Working Memory for This Turn lists the items the agent intends to use, each with one line saying how. Remove rows or add others from your library. You can also ask in plain words, for example "drop the commit-style ones". The agent starts only after you confirm, and the audit later checks it against exactly this list.
Replies cite the memories they apply (M-07). Hover a citation to see the item.
If the agent is doing the opposite of a memory:
The agent resumes from the sentence where you stopped it, and your correction is saved to the item.
Citations are what the agent says it used, not proof that it did. That is why step 4 exists.
When the turn ends, a separate pass reads the whole exchange and rates every selected item: violated, shaped the turn, not applicable, or no visible effect. Each verdict says whether the audit found it or the agent reported it, so a violation the agent never cited still shows up.
For a violated item:
The audit is a model judgment and can be wrong.
The Memory Board is the whole library, one column per scope.
CLAUDE.md as candidates for review.The Memory Record, on the right of every chat, logs each turn: what was proposed, selected, cited, stopped and audited. It survives context compaction, so you and the agent can still refer back to it.
Reviewing every turn pays off when memory matters, and is too much for a quick question. Set Settings → Memory → Control to Automatic:
You need Bun 1.3.5 or newer, plus one of:
git clone https://github.com/SLEEPYBQ/MemoSync.git
cd MemoSync
bun install
bun run build
bun run start
MemoSync opens at http://localhost:3210. Then:
An engine is the agent that does the work. Access is how it reaches a model. Both are set in Settings → Models.
| Engine | What it runs | Access |
|---|---|---|
| Claude Code | Your installed claude, or the copy bundled with the Agent SDK | Your sign-in, or an API connection that speaks the Anthropic API or OpenAI Chat |
| Codex | Your installed codex (required) | Your sign-in, or an API connection that speaks the OpenAI Responses API or OpenAI Chat |
| Pi | Built into MemoSync | An API connection that speaks OpenAI Chat or Responses |
When a connection speaks only OpenAI Chat, MemoSync translates for Claude Code and Codex through a local gateway on 127.0.0.1; the engine card says via translation. The engine never sees your key.
Your sign-in. The engine uses the login and settings you already have, and MemoSync adds nothing to them. If the engine shows Not signed in, sign in from your terminal, then press Detect again.
API connection.
Engines on an API connection run in a separate profile under ~/.memosync/data/cli-profiles, so your own ~/.claude and ~/.codex are never read or changed. Keys are stored in ~/.memosync/data/credentials.json, readable only by you, and are never sent back to the browser.
MemoSync finds claude and codex on your PATH and in the usual install folders. To point an engine at a specific executable, set its path on the engine's card.
In the composer, under the message box:
In Settings → Memory:
| Setting | What it does |
|---|---|
| Use Memory | Turn memory off everywhere. Your library stays on the Memory Board. |
| Learn From Chats | Keep using memory, but stop proposing new items. |
| Control | Review each turn runs the four steps above. Automatic works without asking; see Automatic. |
| Memory Changes | Ask First holds every proposal for review. Apply Automatically applies non-sensitive ones right away, each with a one-click Revert. Sensitive proposals always ask. |
| Memory Preview | Show the working memory card before each turn, or skip it when nothing applies. |
Memory Changes and Memory Preview apply under Review each turn.
Elsewhere in Settings:
bun run start --port 4000 # another port
bun run start --no-open # don't open a browser
bun run start --remote # listen on 0.0.0.0 (LAN, Tailscale)
bun run start --password <pw> # ask for a password before the app loads
bun run start --share # temporary public URL with a QR code
bun run start --help lists every option.
Everything MemoSync stores lives under ~/.memosync/data/ on your machine:
Nothing is uploaded by MemoSync. Your model provider does receive the conversation, the selected memories and the project context the agent reads.
The agent and its terminals run as your user, with access to your files. Profile isolation separates configuration, not the filesystem.
To stop the usage log, set MEMOSYNC_USAGE_LOG=0. To bundle your data into an archive:
bun run export-data # usage log, memories and settings
bun run export-data --full # also chat transcripts
Exports never include API connections or keys.
docs/DATA_AND_TELEMETRY.md describes each file and event.
bun run dev # client :5174 + server :5175, hot reload
bun test src/ # unit and integration tests, no network
bun run check # typecheck + client builds
The server code is in src/server/:
agent.ts coordinates a turn;memory/ holds the memory engine: capture, checkup, selection, audit and transfer;model-access/ resolves engines and connections.The client is a React app in src/client/. Development data goes to ~/.memosync-dev/.
MemoSync started as a fork of Kanna. It runs:
codex app-server;Provider presets and engine discovery are adapted from Magpie. Provider marks come from Lobe Icons. Licenses are in THIRD_PARTY_NOTICES.md.