Skip to content

Commit 46a51fc

Browse files
committed
feat: add CLI, browser extension, frontend scaffold, GitHub Actions, scripts, README
1 parent c4646a3 commit 46a51fc

41 files changed

Lines changed: 1535 additions & 520 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/FUNDING.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
github: [SamoTech]
2+
ko_fi: samotech

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, dev]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
backend:
11+
name: Backend Tests
12+
runs-on: ubuntu-latest
13+
defaults:
14+
run:
15+
working-directory: backend
16+
steps:
17+
- uses: actions/checkout@v4
18+
- uses: actions/setup-python@v5
19+
with:
20+
python-version: '3.11'
21+
cache: pip
22+
- name: Install dependencies
23+
run: pip install -e '.[dev]'
24+
- name: Lint
25+
run: ruff check app cli
26+
- name: Type check
27+
run: mypy app --ignore-missing-imports
28+
- name: Tests
29+
run: pytest tests/ -v --tb=short
30+
31+
frontend:
32+
name: Frontend Build
33+
runs-on: ubuntu-latest
34+
defaults:
35+
run:
36+
working-directory: frontend
37+
steps:
38+
- uses: actions/checkout@v4
39+
- uses: actions/setup-node@v4
40+
with:
41+
node-version: '20'
42+
cache: npm
43+
cache-dependency-path: frontend/package-lock.json
44+
- run: npm ci
45+
- run: npm run lint
46+
- run: npm run build

.github/workflows/release.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Release to PyPI
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
publish:
10+
runs-on: ubuntu-latest
11+
defaults:
12+
run:
13+
working-directory: backend
14+
permissions:
15+
id-token: write
16+
steps:
17+
- uses: actions/checkout@v4
18+
- uses: actions/setup-python@v5
19+
with:
20+
python-version: '3.11'
21+
- name: Install build tools
22+
run: pip install build
23+
- name: Build package
24+
run: python -m build
25+
- name: Publish to PyPI
26+
uses: pypa/gh-action-pypi-publish@release/v1
27+
with:
28+
packages-dir: backend/dist/

README.md

Lines changed: 155 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,155 @@
1-
# memoryos
2-
🧠 Your AI finally remembers you. Local-first AI memory layer — persistent, searchable memory for any AI assistant. 100% private, zero cloud, works with every LLM.
1+
# 🧠 MemoryOS
2+
3+
> **Your AI finally remembers you.**
4+
5+
[![License: MIT](https://img.shields.io/badge/License-MIT-6366f1.svg)](LICENSE)
6+
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://python.org)
7+
[![FastAPI](https://img.shields.io/badge/FastAPI-0.111-green.svg)](https://fastapi.tiangolo.com)
8+
[![Next.js 14](https://img.shields.io/badge/Next.js-14-black.svg)](https://nextjs.org)
9+
[![Powered by MemoryOS](https://img.shields.io/badge/Powered%20by-MemoryOS-4F46E5)](https://github.com/SamoTech/memoryos)
10+
11+
MemoryOS is a **local-first AI memory layer** that gives any AI assistant persistent, searchable memory across all sessions. 100% private, zero cloud, works with every LLM.
12+
13+
---
14+
15+
## The Problem
16+
17+
You use ChatGPT, Claude, Cursor, and Gemini every day.
18+
But every session starts from zero.
19+
The AI forgets your name, your projects, your preferences, your decisions.
20+
21+
**MemoryOS fixes that.**
22+
23+
---
24+
25+
## How It Works
26+
27+
```
28+
1. CAPTURE → Browser extension silently captures AI conversations
29+
2. STORE → Local SQLite + ChromaDB vector store (100% on your machine)
30+
3. RETRIEVE → Hybrid semantic+keyword search injects context into any AI
31+
```
32+
33+
---
34+
35+
## Quick Install
36+
37+
```bash
38+
curl -fsSL https://raw.githubusercontent.com/SamoTech/memoryos/main/scripts/install.sh | bash
39+
```
40+
41+
Or via pip:
42+
43+
```bash
44+
pip install memoryos
45+
memoryos start
46+
```
47+
48+
---
49+
50+
## Supported AI Tools
51+
52+
| Tool | Capture Method |
53+
|------|---------------|
54+
| ChatGPT | Browser extension |
55+
| Claude | Browser extension |
56+
| Gemini | Browser extension |
57+
| Cursor | CLI file watcher (`memoryos watch`) |
58+
| Any site | Generic DOM scraper (opt-in) |
59+
60+
---
61+
62+
## CLI Reference
63+
64+
```bash
65+
memoryos start # Start server + open dashboard
66+
memoryos stop # Stop server
67+
memoryos search "react debounce hook" # Semantic search
68+
memoryos add "Decided to use Zustand" # Add memory manually
69+
memoryos forget <id> # Forget a memory
70+
memoryos stats # Show statistics
71+
memoryos export --format markdown # Export memories
72+
memoryos ask "what auth approach?" # Get AI-ready context
73+
```
74+
75+
---
76+
77+
## Features
78+
79+
### 🔒 Privacy First
80+
- 100% local — data never leaves your machine
81+
- No telemetry, no analytics, no accounts
82+
- All data in `~/.memoryos/`
83+
84+
### 🔍 Hybrid Search
85+
- Semantic search via ChromaDB + sentence-transformers
86+
- Keyword search via SQLite FTS5
87+
- Re-ranked by relevance × importance × recency
88+
89+
### 🤖 Local AI
90+
- Embeddings: `all-MiniLM-L6-v2` (runs fully offline)
91+
- Summarization: Ollama (local) → Groq → OpenAI (fallback)
92+
93+
### 🌐 Browser Extension
94+
- Chrome, Edge, Brave (Manifest V3)
95+
- Auto-captures ChatGPT, Claude, Gemini
96+
- Popup with instant search
97+
98+
---
99+
100+
## Tech Stack
101+
102+
- **Backend**: Python 3.11, FastAPI, SQLAlchemy (async), SQLite, ChromaDB
103+
- **Frontend**: Next.js 14, TypeScript, Tailwind CSS, React Query, Framer Motion
104+
- **Extension**: TypeScript, Manifest V3
105+
- **Embeddings**: sentence-transformers (local) or OpenAI
106+
- **Summarization**: Ollama → Groq → OpenAI
107+
108+
---
109+
110+
## Architecture
111+
112+
See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
113+
114+
## Privacy
115+
116+
See [docs/PRIVACY.md](docs/PRIVACY.md) — every file MemoryOS writes to disk, documented.
117+
118+
## API
119+
120+
See [docs/API.md](docs/API.md)
121+
122+
---
123+
124+
## Contributing
125+
126+
PRs welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
127+
128+
```bash
129+
git clone https://github.com/SamoTech/memoryos
130+
cd memoryos/backend
131+
pip install -e '.[dev]'
132+
memoryos start
133+
```
134+
135+
---
136+
137+
## Roadmap
138+
139+
- [ ] Firefox extension
140+
- [ ] Cursor IDE integration (LSP plugin)
141+
- [ ] Import from ChatGPT data export
142+
- [ ] Obsidian vault sync
143+
- [ ] Memory streaks & gamification
144+
- [ ] SQLCipher encryption
145+
- [ ] Mobile companion app
146+
147+
---
148+
149+
## License
150+
151+
MIT © [Ossama Hashim](https://github.com/SamoTech)
152+
153+
---
154+
155+
> *"The palest ink is better than the best memory."*

backend/cli/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)