Team Memory Agent
Team Memory Agent turns scattered team activity into a local, queryable event ledger and regenerated Markdown reports. It combines central signals such as forge commits and shared project-channel messages with member-reviewed local highlights.
The privacy boundary is simple: MemberKit prepares a JSON bundle locally, the
member reviews it, and nothing is transmitted until that member explicitly runs
memberkit push. Scheduled runs create drafts and reminders only.
Components
| Component | Installed by | Purpose |
|---|---|---|
teammem |
Hub operator | Collect, import, query, and render |
teammem-memberkit |
Individual member | Draft, review, and push selected highlights |
teammem-bundle/v1 |
Both packages | Frozen JSON protocol |
MemberKit is a standalone command-line package, not a skill. Members install only
teammem-memberkit; they do not clone this repository or install the hub.
Member quick start
1. Get the two team-specific values
Ask the hub operator for:
- your roster slug, such as
alex; - the Git URL of the team-memory inbox, plus permission to push to it.
MemberKit v0.1 reads local observations from
claude-mem. Its default database is
~/.claude-mem/claude-mem.db. You also need Python 3.11 or newer, pipx, and Git.
2. Install and configure
Installing the package does not create a schedule or transmit anything.
pipx install teammem-memberkit
memberkit setup
Setup asks for the roster slug and inbox Git URL. On macOS it then proposes a daily
17:30 reminder in the member's local timezone: press Enter to accept, enter another
HH:MM, or enter no to decline. The configuration is stored with user-only
permissions at ~/.config/teammem/memberkit.env.
For unattended setup:
memberkit setup \
--member alex \
--inbox-url git@forge.example:team/team-memory-inbox.git \
--time 17:30
Use --no-schedule instead of --time to configure MemberKit without installing
the macOS schedule.
3. Review before sharing
The schedule prepares a local draft and shows a reminder. It never pushes. Review today's draft:
memberkit review
To remove private items, edit the events list in
~/.memberkit/out/bundle-<member>-<YYYY-MM-DD>.json, save valid JSON, and review
again. journal_md is only a preview and is regenerated from the reviewed event
list when pushing.
Share the reviewed date, or dismiss it without sharing:
memberkit push --date YYYY-MM-DD
memberkit dismiss --date YYYY-MM-DD
The date defaults to today for draft, review, push, and dismiss. Removed or
dismissed events remain excluded from later catch-up drafts.
Schedule behavior
A scheduled run checks yesterday and today, preserving every event's original local calendar date. With the default 17:30 schedule, work from 17:30–23:59 is discovered the next day but remains in the earlier day's catch-up draft. Work at or after midnight belongs to the next calendar day. Older unfinished dates remain in later reminders.
memberkit schedule status
memberkit schedule install --time 17:30
memberkit schedule remove
memberkit scheduled-run
Automatic schedule installation currently supports macOS launchd. Other platforms
can schedule the portable memberkit scheduled-run command. If an edited draft is
invalid JSON, a scheduled run leaves it untouched and keeps reminding the member
to repair it. To discard a malformed draft, delete that local draft file before
running memberkit dismiss --date YYYY-MM-DD.
See the complete MemberKit guide for upgrades, troubleshooting, files created locally, and safe removal.
Hub quick start
The hub operator manages the central collectors, roster, inbox importer, ledger, and rendered views. Install the published command in an isolated environment:
pipx install teammem
mkdir -p ~/.config/teammem
curl -fsSL \
https://raw.githubusercontent.com/xiongxhc/team-memory-agent/master/config/roster.example.yaml \
-o ~/.config/teammem/roster.yaml
curl -fsSL \
https://raw.githubusercontent.com/xiongxhc/team-memory-agent/master/config/projects.example.yaml \
-o ~/.config/teammem/projects.yaml
Edit both configuration files before collecting or importing data. Operators who are developing adapters or running from a pinned checkout can instead use:
git clone https://github.com/xiongxhc/team-memory-agent.git
cd team-memory-agent
python3 -m venv .venv
.venv/bin/pip install -e .
cp config/roster.example.yaml config/roster.yaml
cp config/projects.example.yaml config/projects.yaml
Import reviewed bundles into a local ledger:
TEAMMEM_DB=ledger.db TEAMMEM_CONFIG_DIR=~/.config/teammem \
teammem import-bundles \
--inbox inbox \
--archive archive \
--quarantine quarantine
Render Markdown views:
TEAMMEM_DB=ledger.db TEAMMEM_CONFIG_DIR=~/.config/teammem TEAMMEM_VAULT=vault \
teammem render
GitLab and Feishu collectors are optional. LLM-backed synthesis is optional; the ledger, bundle importer, queries, and deterministic renderer work without it.
The operator should create a private inbox Git repository, grant each member push access, and give each member an inbox URL and roster slug. Import from a disposable export of the inbox, not directly from its Git working tree, because accepted files are consumed from the import directory. See deployment for the complete operator and MemberKit lifecycle.
Upgrade or uninstall the packaged command with:
pipx upgrade teammem
pipx uninstall teammem
Uninstalling the command does not remove operator-owned configuration, ledgers, archives, quarantine records, or rendered views.
Principles
- The SQLite ledger is truth; Markdown output is disposable and regenerated.
- Import is idempotent per attributed event.
- Unknown central identities are surfaced; unknown MemberKit identities are quarantined.
- Shared-channel collection requires a visibly present integration.
- Raw local databases, direct messages, and arbitrary files never enter a bundle.
- This project provides work visibility, not employee scoring or performance evaluation.
See
architecture,
privacy,
deployment,
the
MemberKit guide,
and the
teammem-bundle/v1 contract.
Development
python3 -m venv .venv
.venv/bin/pip install -e '.[dev]'
.venv/bin/pip install -e packages/memberkit
.venv/bin/pytest -q tests packages/memberkit/tests
./scripts/check-public.sh
Before publication, the extracting operator should also provide a private regular expression containing origin-specific organization and member identifiers without committing it:
TEAMMEM_PUBLIC_DENY_REGEX='<private-regex>' ./scripts/check-public.sh
This project is licensed under Apache-2.0. The code owner authorized publication under that license on 2026-07-27.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file teammem-0.1.0.tar.gz.
File metadata
- Download URL: teammem-0.1.0.tar.gz
- Upload date:
- Size: 47.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd883268c48ff182a9ef7025958b5531d418d54b83d065ad4e6de91160b0e64b
|
|
| MD5 |
b49cb255e4fc8efe8e4d00592e83214f
|
|
| BLAKE2b-256 |
c740c946900e30c339e6b6584c43f0b34d6192e9bb856e37ba115e4eb21e625b
|
Provenance
The following attestation bundles were made for teammem-0.1.0.tar.gz:
Publisher:
release.yml on xiongxhc/team-memory-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
teammem-0.1.0.tar.gz -
Subject digest:
dd883268c48ff182a9ef7025958b5531d418d54b83d065ad4e6de91160b0e64b - Sigstore transparency entry: 2260638407
- Sigstore integration time:
-
Permalink:
xiongxhc/team-memory-agent@b1ce8a957ea31939c1c43d421951a871b14b04e4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/xiongxhc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b1ce8a957ea31939c1c43d421951a871b14b04e4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file teammem-0.1.0-py3-none-any.whl.
File metadata
- Download URL: teammem-0.1.0-py3-none-any.whl
- Upload date:
- Size: 35.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f8718db69a72ccc878c61254866c6b95e833fe941f60d6f7b830b6ee798f2b7
|
|
| MD5 |
02c8fbca76f61f005684ba584d95fc46
|
|
| BLAKE2b-256 |
42e8be9e98574ccaadfec10bcd81f4aa7fde28459eb68f3aae194a3b4c8a2758
|
Provenance
The following attestation bundles were made for teammem-0.1.0-py3-none-any.whl:
Publisher:
release.yml on xiongxhc/team-memory-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
teammem-0.1.0-py3-none-any.whl -
Subject digest:
7f8718db69a72ccc878c61254866c6b95e833fe941f60d6f7b830b6ee798f2b7 - Sigstore transparency entry: 2260638582
- Sigstore integration time:
-
Permalink:
xiongxhc/team-memory-agent@b1ce8a957ea31939c1c43d421951a871b14b04e4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/xiongxhc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b1ce8a957ea31939c1c43d421951a871b14b04e4 -
Trigger Event:
release
-
Statement type: