# Asurada
> 사용자와 함께 성장하는 AI 메모리·인지 데몬.
> 사이버포뮬러의 Asurada 시스템에서 영감받음.
`asurada` 는 macOS 백그라운드 데몬으로 동작하며, 도메인 무관 인지 레이어 역할을 합니다.
[Devist](https://github.com/WebchemistCorp/devist) 같은 도구가 brain.db 를 통해 Asurada 와 협력합니다.
## 특징
- **로컬 우선** — `~/.asurada/brain.db` (SQLite + FTS5) 가 단일 진실 + Supabase 양방향 sync
- **BYOK** — 사용자 본인의 Supabase Postgres + ElevenLabs API 키
- **단일 인격, 다중 사용자** — 한 Asurada 가 여러 사용자를 user_id 별 컨텍스트로 응대
- **임베딩된 인격** — `prompts/persona.md`, `prompts/policies.md`, `prompts/classify.md` 가 코드에 함께 배포되어 동일 인격 보장
- **TTS** — ElevenLabs 통합 (어드바이스 음성 출력, 향후 양방향 대화)
## 설치
### Homebrew
```bash
brew install webchemistcorp/asurada/asurada
```
### Cargo
```bash
cargo install asurada
```
### 소스에서
```bash
git clone https://github.com/WebchemistCorp/asurada
cd asurada
cargo install --path .
```
## 빠른 시작
```bash
# 1. brain.db 초기화
asurada init
# 2. Supabase 자격증명 환경 변수 (사용자 본인의 Postgres)
export ASURADA_DATABASE_URL='postgresql://user:pass@host:5432/db'
export ASURADA_USER_ID='alice'
# 3. Supabase 측 마이그레이션 한 번 적용
psql "$ASURADA_DATABASE_URL" -f migrations/supabase/0001_init.sql
# 4. 데몬 시작 (HTTP API + 백그라운드 sync)
asurada serve
```
## 명령어
```
asurada init brain.db 초기화
asurada serve [--port 7878] 데몬 시작 (HTTP API + sync 루프)
asurada path 경로 확인
asurada tts voices ElevenLabs voice 목록
asurada tts speak [--project] 미확인 어드바이스 음성 출력
asurada tts test "<text>" 테스트
```
## 아키텍처
```
[User's Mac]
Supabase Postgres (사용자 본인)
asurada.{events,memories,advice,projects}
▲ ▲ ▲
│ tokio-pg │ tokio-pg │ Supabase JS
│ │ │
asurada 데몬 ───────┘ │ Vercel Dashboard
(sync 게이트, │
인격, Claude, │
TTS) ~/.asurada/brain.db
(WAL, 다중 프로세스)
▲
│ INSERT events
Devist 데몬 (파일 감시)
```
## 책임 경계
Asurada 는 인지 레이어. 도메인은 소비자가 정함.
| 메모리 저장 / 분류 / 검색 | **Asurada** |
| 어드바이스 생성 (Claude 호출) | **Asurada** |
| 통합 / 반성 sleep cycle | **Asurada** |
| 페르소나 / 정책 / 톤 | **Asurada** (prompts/) |
| 파일 감시 / 프로젝트 관리 | Devist (개발) |
| 영상/블로그/콘텐츠 도메인 | Webchemist Core (미래) |
| 사용자 데이터 저장 | 사용자 본인의 Postgres |
## License
MIT — © Webchemist