
Twin Me Up
io.github.GitDakky由 GitHub 帳號 GitDakky 發布v0.2.1更新於 Oct 27, 2026
A personal work twin for every AI agent: your confirmed guidance and explicit grants, enforced.
概覽
本機「工作分身」伺服器:向 AI 代理傳達你已確認的準則,判斷某項動作是否獲授權,並把審批請求留給你本人決定。
- 可以做什麼
- 向代理提供某工作流程下你已確認的準則、界線與目前授權,並可搜尋這些準則
- 判斷某個具體動作是否被允許,為單一動作提出審批請求,並查詢審批狀態
- 記錄決策、糾正意見與候選經驗,並列出等待你審核的未確認經驗
- 查看某工作流程的成效紀錄,以及針對已記錄決策值得追問的問題
- 適用情境
- 適合同時使用多個 AI 代理、卻得反覆向每個代理重述相同偏好、紅線與審批習慣的人。也適合想把已確認準則與明確、可到期的授權集中保存在本機,並讓重要動作先徵求你的同意而非被默默執行的情境。
- 執行需求
- 需要 Python 3.11 或更新版本,以及 uv 或 pipx;macOS 與 Linux 已測試,Windows 未測試。先在你自己的終端機執行 twinmeup init 設定姓名與通關語,再用 uvx twin-me-up 啟動伺服器。資料預設存放在 ~/.twinmeup,可用 TWINMEUP_HOME 變更。不需帳號或 API 金鑰,只有可選的評測執行會呼叫模型。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Twin Me Up,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
[Twin Me Up: a personal work twin for every AI agent]
[PyPI] [Python versions] [CI] [OpenSSF Scorecard] [Licence: Apache-2.0] [Model Context Protocol]
Teach it once. Every agent you use works the way you would, and asks before it acts.
Quick start · One-prompt install · How it works · Works with · The research · Safety
Why
You probably use more than one AI agent. Each one starts from zero. It does not know what you care about, which corners you never cut, or which decisions you always want to make yourself. So you repeat yourself, correct the same mistakes, and hope nothing consequential happens before you look.
Twin Me Up is a small, local, open-source service that gives every agent the same answers to three questions:
- How does this person want this kind of work done? Your confirmed guidance, criteria, exceptions and red lines, briefed to the agent at the start of work.
- Am I allowed to do this? Explicit grants, scoped to a workflow and a set of actions, with
optional expiry. Anything not granted returns
ask. Optional hooks enforce that outside the model. - What did I just learn? Your decisions and corrections become candidate lessons. Only you can confirm them.
It is not a chatbot of you, a personality clone or an autonomous replacement for you. The evidence does not support those claims, and the research explains why.
What makes it different
Compared with what you might use today
Quick start
You need Python 3.11 or later and uv (or pipx). macOS and Linux are tested. Windows should work but is untested.
twinmeup init asks for your name and a passphrase. The passphrase guards everything only you
should do: confirming lessons, granting authority, exporting and erasing. Agents are never
given it, and those commands refuse to run without it.
Only need the MCP server? After twinmeup init, any MCP client can start it with
uvx twin-me-up. Prefer the latest code? uv tool install git+https://github.com/GitDakky/twin-me-up.
Upgrading? Run uv tool upgrade twin-me-up (or pipx upgrade twin-me-up), then twinmeup doctor.
The FAQ explains what an upgrade changes for your twin.
Using Claude Desktop? After twinmeup init, download the .mcpb desktop extension from the
latest release and open it. One bundle
works on macOS, Windows and Linux.
Install with one prompt
Already working inside an agent? Paste this into it.
Copy-paste install prompt
The agent installs the package, connects itself and checks the result. The two steps that matter stay with you: choosing the passphrase, and approving any enforcement hooks. The prompt is also in docs/install-prompt.md.
How it works
The loop
- Orient. At the start of work the agent calls
twin_brief. It gets your confirmed guidance for the workflow, with boundaries and escalation rules always included, and a list of what it is authorised to do. - Check. Before anything consequential it calls
twin_authorise. The answer isallowonly when a live grant covers the action. Otherwise it isask: the agent prepares a draft, requests your approval and waits for your decision. - Learn. When you make a decision or correct the agent, it records the decision or the correction and proposes lessons from it.
- Ratify. You review the queue and confirm, revise or reject each lesson. Only confirmed lessons reach future briefs.
- Prove. You freeze held-out decisions and test the twin against two baselines before trusting it with more.
Tools your agents get
What only you can do
These commands need your passphrase, so agents cannot run them.
Approvals
An agent that needs an action it has not been granted asks for it, then waits:
twin_authorisesaysask. The agent prepares a draft and callstwin_request_approvalwith a one-line summary of what and why.- You see the request with
twinmeup approvals listand decide in your own terminal:twinmeup approvals approve <id>, ortwinmeup approvals decline <id> --note "why". - The agent checks
twin_approval_statusand acts only once it saysapproved.
An approval grants exactly the action requested, once and for an hour, unless you say otherwise
(--uses 3, --for 1d). Where a hook enforces, the tool call that acts spends it, so another
attempt needs another request. Every approval and decline is also recorded as a decision, so
your twin learns where your lines are. Requests survive restarts, and an agent that asks twice
gets its first request back.
Write tools also take an optional request_id. A retry with the same id, after a dropped
connection or a crash, returns the first result instead of recording twice.
Works with
twinmeup connect <system> prints the exact steps for each of these, using the paths on your
machine. All the guides are also in docs/integrations.md.
Checked in October 2026 against current releases. The host checks ran on 0.1.0; 0.2.0 adds
two tools to the same MCP server, and the Pi Durable check ran on 0.2.0. The framework checks are reproducible with
scripts/interop/frameworks.py. Got it working
somewhere marked "not yet run"? Tell us how.
No MCP? Export function-calling schemas and dispatch calls through the CLI:
Teach your twin
Start small: one workflow you repeat often, such as reviewing quotes or triaging requests.
1. Write down the red lines. These are carried into every brief and never ranked out.
2. Record real decisions. Agents do this with twin_record_decision as you work. You can
also add them yourself from JSON (see examples/); records you add
yourself ask for your passphrase, because they carry your name.
3. Review what it proposes. Nothing an agent proposes has authority until you say so.
4. Grant authority narrowly, and let it expire.
Lessons come in seven kinds: fact, criterion, exception, escalation, procedure,
boundary and preference. Each records whether it was a written rule, elicited from you,
inferred by a model or learned from a correction.
Measure it
Do not trust a twin because it sounds like you. Test it on decisions it has not seen.
Each case is answered three ways with the same model:
The twin has earned its keep only if it beats the rules arm. Reports show agreement with
your choices and how often the twin correctly escalated, with warnings when the sample is too
small to mean much. twin_track_record moves a workflow from observe to draft to
supervised as evidence accumulates. A stage is advice, not authority: more autonomy still
needs an explicit grant from you.
docs/pilot-guide.md describes a six-week pilot for one workflow.
Safety model
- Human-only operations need your passphrase. It is stored as a salted scrypt hash and read from your terminal, never from an agent's arguments.
- Agents cannot set themselves up as you. Setting up an unprotected twin has to be done from a real terminal.
- Reserved actions. Anything under
twin.can never be granted, so no grant can hand an agent control of the twin itself. - Approvals cover one action, once. Only you can approve or decline, with your passphrase. An approval grants exactly the action requested, for one use and an hour unless you say otherwise. Where a hook enforces, every tool call is a new attempt, so an id a host reuses cannot ride on a spent approval.
- Enforcement fails closed. If a hook cannot reach a decision, the tool call is blocked. The example action maps also stop agents running human-only commands, writing to the twin's store or editing the host configuration that registers the hook.
- Tamper-evident audit. Every write is appended to a hash chain.
twinmeup audit verifychecks it. - Signed, reproducible releases. Packages are built in GitHub Actions and published to PyPI with trusted publishing and attestations. No long-lived tokens exist.
- Honest limits. Twin Me Up runs as you. Any program running as your user can read your files. The passphrase stops agents using the twin's own commands to act as you, and hooks stop governed tool calls, but neither is a sandbox. For hard isolation, run agents as a different user or in a container.
See SECURITY.md for the threat model and how to report a vulnerability.
Where it can still fail
Twin Me Up narrows what agents may do. It does not make an agent safe on its own.
- Without a hook, the twin advises. Over MCP alone it tells an agent what it may do, and nothing stops an agent that ignores it. Enforcement needs a pre-action hook: Hermes, Claude Code, Cursor, pi or Pi Durable.
- Hooks govern only mapped calls. A tool or command your action map does not match is left to the host's own permissions.
- Without a hook, an approval is time-boxed, not single-use. The hook is what spends it, so over MCP alone an approved action stays allowed until it expires.
- A grant is not a sandbox. An allowed action runs with the agent's full permissions.
- Retries are safe only with a
request_id. A write retried without one can be recorded twice. - Your passphrase is the boundary. Anyone with it and your terminal can confirm lessons and approve requests. Agents never receive it, and a compromised machine is out of scope.
- Files are private, not encrypted. The store and settings are readable only by your user account. Encryption at rest is not built in yet.
- A prediction is not consent. The twin learns how you decide, and never treats a forecast of your answer as your approval.
Your data
- Everything lives in
~/.twinmeup(setTWINMEUP_HOMEto move it). Files are readable by you only. twinmeup export twin.bundle.jsonwrites a portable bundle. Held-out evaluation answers stay sealed unless you ask for them.twinmeup erase episode <id> --reason "..."removes a decision and every lesson, handoff and evaluation case derived from it, and redacts it from the audit log while keeping the chain valid.- The twin itself never calls a model and sends nothing anywhere. The only network calls are the evaluation responders you choose to configure.
The research
Before writing code we reviewed the primary research on digital twins of people, expertise transfer and AI assistance. The headline results:
That is why the twin never infers authority, why learning needs your confirmation, why it asks follow-up questions about omitted reasons, and why it is tested against baselines instead of trusted on feel. The full review, with every source and the regulatory lines it draws (including the EU AI Act's prohibition on workplace emotion inference), is in docs/research.md.
Command reference
All commands
Every command has --help. Global options: --home, --actor, --principal and
--passphrase-stdin (for scripts you run yourself).
FAQ
Does Twin Me Up need an LLM?
No. The twin is deterministic: storage, retrieval, authority and audit. Your agents bring the
model. Only eval run with a model responder calls one.
Is this a clone of me?
No. It holds the guidance you have confirmed and the decisions you have recorded, and it tells agents what they may do. It does not imitate your voice or personality, and it does not model emotions.
What if an agent ignores the twin?
Without hooks the twin is advisory: well-behaved agents follow the skill, but nothing forces them. With hooks (Hermes, Claude Code and pi) or the Pi Durable extension, governed tool calls are checked outside the model, and ungranted ones are blocked or wait for your approval.
Can I use it at work?
Yes, as your own tool. If an organisation deploys twins for its staff, it needs its own assessment of lawful basis, notices and retention, and clear rules on who owns and can revoke each twin. Consent is rarely a sound basis for workplace monitoring. See docs/research.md.
Do I type twinmeup or twin-me-up?
Either. twinmeup is the CLI. twin-me-up is the package's own name: given a command, such as
twin-me-up doctor, it does the same as twinmeup. With no command it starts the MCP server,
which is what agent hosts and uvx twin-me-up run.
How do I upgrade?
Run uv tool upgrade twin-me-up, or pipx upgrade twin-me-up. If uv says there is nothing to
upgrade just after a release, it is reading a cached index: run uv cache clean twin-me-up
and try again. A newer version moves your twin to its store format the first time it opens
it, and older versions cannot open it after that. Check with twinmeup version and
twinmeup doctor.
Can several people share a machine?
Give each person their own TWINMEUP_HOME. One twin belongs to one person.
Roadmap
- Enforcement hooks for more hosts as their hook interfaces allow
- Encryption at rest for the store
- Signed bundles for moving a twin between machines
- A small local review app for lessons and approvals
- Verified guides for VS Code, Goose and Windows
- The Pi Durable extension out of experimental, with a verified map for pi's coding tools
Follow along, or pick something up, in issues and discussions.
Contributing
Contributions are very welcome, from a typo fix to a new agent integration. Good first issues are a gentle start, and CONTRIBUTING.md explains the setup, the one-command check and how reviews work. Please report security issues privately, as described in SECURITY.md.
Credit and licence
Twin Me Up was created by GitDakky and is released under the Apache License 2.0. If you redistribute it or build on it, the licence requires you to keep the NOTICE file, which credits the original author. Using it in research? GitHub's "Cite this repository" button gives you a ready-made citation.
If Twin Me Up is useful to you, a star helps other people find it.
Built on the Model Context Protocol.
來源:README.md,提交 7d1113c
工具
0版本歷史
3- v0.2.1最新Oct 15, 2026
- v0.2.0Oct 15, 2026
- v0.1.0Oct 14, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分