Stateful AI workspace memory CLI
Project description
Menemory
로컬 기본 + Supabase 백업용 상태형 AI 메모리 CLI입니다.
- 기본 저장소: 현재 프로젝트의
./.menemory - 세션 복구:
tmux연동 - 백업/복원: Supabase (
backup push/pull) - 컨텍스트 계층: Core / Session / Long-term
기본 운영 방식 (권장)
- 로컬에서 작업
- 필요 시 Supabase로 백업
- 다른 서버에서 Supabase에서 복원
즉, Supabase는 실시간 주 저장소가 아니라 백업/복구 레이어로 사용합니다.
Quick Start
# 프로젝트 루트에서
menemory init --session-id dev-2026-02-20
menemory ask "현재 작업 이어서 정리해줘" --cmd "codex"
menemory status
init은 아래를 한 번에 수행합니다.
- 로컬 세션 초기화
- 사용자 설정 마법사(이름/이메일/LLM/Supabase)
- 실행환경 점검(tmux/Supabase/gitignore)
- Codex용 기본 menemory 스킬 세트 자동 생성(
~/.codex/skills)
직관 명령어
menemory init --session-id <id> # 첫 실행 권장(체크 + 스킬 부트스트랩)
menemory start --session-id <id> # 세션 시작/초기화
menemory ask "..." --cmd "codex" # 메모리 포함 질의 (추천)
menemory status # 로컬 상태 요약
menemory resume --attach # SSH 재접속 후 tmux 복구
menemory backup push # 로컬 -> Supabase 백업
menemory backup pull --session-id <id> # Supabase -> 로컬 복원
menemory where # 현재 MENEMORY_HOME 확인
기존 호환 명령(run, show, supabase-*)도 계속 동작합니다.
init 옵션:
menemory init --interactive # 설정 마법사 강제 실행
menemory init --configure # 기존 config 있어도 다시 입력
menemory init --no-with-skills # 스킬 생성 스킵
menemory init --skills-dir /path/skills # 생성 경로 지정
menemory init --overwrite-skills # 기존 스킬 덮어쓰기
menemory init --user-name minuum --user-email me@example.com
menemory init --llm-cmd codex
menemory init --supabase-url https://<project>.supabase.co
menemory init --supabase-service-role-key <service_role_key>
설정은 로컬 워크스페이스의 ./.menemory/config.json에 저장되며, 이후 ask/backup에서 자동 재사용됩니다.
환경변수(MENEMORY_LLM_CMD, SUPABASE_*)가 있으면 설정값보다 우선 적용됩니다.
자동 .gitignore 반영
Menemory가 워크스페이스를 생성할 때, 현재 Git 저장소의 .gitignore에 아래 경로를 자동 추가합니다.
.menemory/sessions/
.menemory/longterm/chroma_db/
.menemory/longterm/memory.jsonl
- 비활성화:
export MENEMORY_AUTO_GITIGNORE=0 - 커스텀 홈 사용 시:
MENEMORY_HOME기준 상대 경로로 자동 반영
Supabase 백업 설정
- Supabase SQL 적용:
sql/supabase_schema.sql - 환경변수 설정
export SUPABASE_URL="https://<project>.supabase.co"
export SUPABASE_SERVICE_ROLE_KEY="<service_role_key>"
export SUPABASE_SERVER_ID="dev-server-01"
- 백업/복원
menemory backup push
menemory backup pull --session-id dev-2026-02-20 --server-id dev-server-01
설치
cd menemory
python -m pip install .
# 또는
pipx install .
PyPI 배포
GitHub Actions 기반 배포가 포함되어 있습니다.
CI Package: PR/main에서 빌드 +twine checkPublish TestPyPI: 수동 실행으로 TestPyPI 업로드Publish PyPI:v*태그 push 시 PyPI 업로드
사전 1회 설정:
- PyPI/TestPyPI에 프로젝트 생성
- 각 인덱스에서 Trusted Publisher 등록
- Trusted Publisher의 repository/workflow를 아래와 정확히 일치:
- owner:
minuum - repo:
menemory - workflow:
publish-pypi.yml(PyPI),publish-testpypi.yml(TestPyPI)
릴리스 절차:
cd menemory
# 버전 갱신 (pyproject.toml)
git add .
git commit -m "chore: release v0.1.1"
git tag v0.1.1
git push origin main --tags
설치 확인:
pipx install menemory
# 또는
python -m pip install menemory
menemory --help
저장소 분리/푸시
cd menemory
git remote add origin <new-menemory-remote-url>
git push -u origin main
Project details
Release history Release notifications | RSS feed
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 menemory-0.1.3.tar.gz.
File metadata
- Download URL: menemory-0.1.3.tar.gz
- Upload date:
- Size: 22.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a26f763bc5eec8f5e87d17ae4c821d464303855f04415ddfcda8f8aa932b2ad5
|
|
| MD5 |
40fad3e8b532fe18b899448ed4f537c3
|
|
| BLAKE2b-256 |
e3414cf50470e89e78e07289fe0199cff726ce5a1193bd8b21b7f7ca563126aa
|
Provenance
The following attestation bundles were made for menemory-0.1.3.tar.gz:
Publisher:
publish-pypi.yml on minuum/menemory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
menemory-0.1.3.tar.gz -
Subject digest:
a26f763bc5eec8f5e87d17ae4c821d464303855f04415ddfcda8f8aa932b2ad5 - Sigstore transparency entry: 976171494
- Sigstore integration time:
-
Permalink:
minuum/menemory@6d97b9d73ac29b038b05ca3af1030a2f14e79d21 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/minuum
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6d97b9d73ac29b038b05ca3af1030a2f14e79d21 -
Trigger Event:
push
-
Statement type:
File details
Details for the file menemory-0.1.3-py3-none-any.whl.
File metadata
- Download URL: menemory-0.1.3-py3-none-any.whl
- Upload date:
- Size: 23.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1290fc5de0d1e8b31dfd1fbdeeac8610d73395d9567f1cfa57a73d65858428c0
|
|
| MD5 |
b8f4d4c46466f572a37497c5965d3ee6
|
|
| BLAKE2b-256 |
01767260c9b0019d086cd44f3443472e2f006b74331893e815a11cefeafc38ff
|
Provenance
The following attestation bundles were made for menemory-0.1.3-py3-none-any.whl:
Publisher:
publish-pypi.yml on minuum/menemory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
menemory-0.1.3-py3-none-any.whl -
Subject digest:
1290fc5de0d1e8b31dfd1fbdeeac8610d73395d9567f1cfa57a73d65858428c0 - Sigstore transparency entry: 976171495
- Sigstore integration time:
-
Permalink:
minuum/menemory@6d97b9d73ac29b038b05ca3af1030a2f14e79d21 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/minuum
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6d97b9d73ac29b038b05ca3af1030a2f14e79d21 -
Trigger Event:
push
-
Statement type: