tapflow
팀 전체가 사용할 수 있는 자체 호스팅 iOS·Android 시뮬레이터 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Self-editing agent on Gemini 3.5 Flash. Three-tier markdown memory (system / active / archive), per-user isolation, web UI + CLI.
pip install -r requirements.txt
$env:GEMINI_API_KEY = "..."
Web server (multi-user, mock login):
uvicorn server:app --host 127.0.0.1 --port 8000
Open http://127.0.0.1:8000 → pick a mock user → chat.
CLI (single user per process):
$env:AGENT_USER_ID = "alice"
python agent.py
data/users/<user_id>/skills/.## sections.sessions/<session_id>.jsonl./api/session/end (or Ctrl-C in CLI) → session summarized into a new active skill.data/users/<user_id>/
skills/
system/*.md # always loaded (identity, response style, hard rules)
*.md # active tier, frontmatter-matched
archive/*.md # archive tier, section-retrieved by ## heading
sessions/
<session_id>.jsonl # one turn per line
---
name: skill-name
description: One-line description used for matching against prompts
---
Body. For archive-tier, structure with ## sections for granular retrieval.
mock_users.json lists allowed user ids. Login POSTs to /api/login which sets a signed cookie. current_user dependency in server.py re-validates the cookie on every request.
Single seam for Google OAuth: replace /api/login with the OAuth callback. Cookie payload shape ({"user_id": "..."}) and current_user dependency stay identical. Nothing else in the codebase touches identity.
Mock login has no password — bind to 127.0.0.1 only.
GEMINI_API_KEY or GOOGLE_API_KEY — required.AGENT_USER_ID — CLI only. Must exist in mock_users.json.SECRET_KEY — optional. Auto-generated at .secret_key if absent.AGENT_DEBUG=1 — prints raw LLM JSON from reflect/session calls.| Method | Path | Body / Notes |
|---|---|---|
| GET | /api/users | Public. Mock account list. |
| POST | /api/login | {user_id} → sets cookie. |
| POST | /api/logout | Clears cookie. |
| GET | /api/me | Current user. |
| POST | /api/chat | {session_id?, message} |
| POST | /api/session/end | {session_id} → writes skill. |
| GET | /api/sessions | List user's sessions. |
| GET | /api/skills | List user's skills. |
| DELETE | /api/skill/{name} | Remove a skill. |