How biswajitbiswal-in/secondself works
SecondSelf is a local-first personal knowledge system: people capture notes, URLs, and files; captures are organized into PARA notes, semantically linked, and represented in an interactive graph; questions retrieve relevant notes and produce cited answers. The README documents these major capabilities and the pipeline order. The sampled source confirms key UI-to-backend and orchestrator calls; some backend wiring is unsampled, so those relationships are omitted where not established.
Main entry points: storage.py File storage · app.py Streamlit app · ask.py RAG answering · pipeline.py Pipeline orchestrator
Components 23
User interface
- Streamlit app
app.py - Capture page
ui/pages/capture.py - Ask page
ui/pages/ask.py - Graph view
ui/pages/graph.py - Knowledge dashboard
ui/pages/dashboard.py - Interactive viewer
static/graph.html
Knowledge pipeline
- Capture intake
capture.py - Content extraction
lib/extract.py - Pipeline orchestrator
pipeline.py - PARA classification
classify.py - Semantic linking
link.py - Graph builder
build_graph.py
Search and answers
- RAG answering
ask.py - Keyword search
search.py
Local knowledge state
- File storage
lib/storage.py - Raw captures
data - PARA notes
wiki - Processing index
data/index.json - Note embeddings
data/embeddings.pkl - Knowledge graph
data/graph.json
AI integrations
- Groq LLM
- Sentence-transformers
Other components
- Knowledge keeper
Connections 31
- Knowledge keeper → Streamlit app: uses
- Knowledge keeper → Capture page: submits content
- Knowledge keeper → Ask page: asks question
- Streamlit app → Capture page: renders
- Streamlit app → Ask page: renders
- Streamlit app → Graph view: renders
- Streamlit app → Knowledge dashboard: renders
- Capture page → Capture intake: captures
- Capture intake → Content extraction: extracts text
- Capture intake → File storage: saves capture
- File storage → Raw captures: writes and reads
- Pipeline orchestrator → PARA classification: runs classification
- Pipeline orchestrator → Semantic linking: runs linking
- Pipeline orchestrator → Graph builder: builds graph
- PARA classification → File storage: reads captures; writes notes
- PARA classification → Groq LLM: classifies content
- Semantic linking → File storage: reads and updates notes
- Semantic linking → Sentence-transformers: computes similarity
- Semantic linking → Note embeddings: persists vectors
- Graph builder → File storage: reads notes
- Graph builder → Knowledge graph: writes graph
- Pipeline orchestrator → Processing index: tracks processing
- Ask page → RAG answering: submits question
- RAG answering → File storage: retrieves notes
- RAG answering → Sentence-transformers: embeds query
- RAG answering → Note embeddings: retrieves vectors
- RAG answering → Groq LLM: synthesizes answer
- Graph view → Knowledge graph: loads graph
- Graph view → Interactive viewer: displays graph
- Knowledge dashboard → File storage: reads note stats
- Keyword search → File storage: searches notes