A clean Python CLI that searches open-access research papers and surfaces cross-disciplinary breakthrough patterns.
New in v1.3.0: Multi-source search, AI digest, Knowledge Graph, Obsidian export, Watch mode!
SynapseScanner fetches recent papers from arXiv (with more sources planned), scans them for cross-disciplinary patterns (quantum, metamaterials, AI, temporal physics), and suggests concrete low-cost experiments you can try at home.
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ SynapseScanner v1.3.0 โ
โ Quantum Research Intelligence โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ Found 15 papers
arxiv.org/abs/1104.0917v1 โโโโโโโโโโโโโโโโโโโโโโโโ 15/15 100%
โญโโ Discoveries โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ Quantum breakthrough
โ Test quantum erasure with polarized lenses & laser pointer
โ ~$30 ยท Easy
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ Quantum breakthrough
Quantum erasure can be demonstrated with inexpensive optical
components, opening a low-cost pathway for teaching advanced
quantum-mechanics experiments in undergraduate labs.
keywords entanglement โฃฟโฃฟโฃฟ topology โฃฟโฃฟโฃฟ
โ Done ยท 15 papers ยท 1 patterns ยท 0.7s
โก github.com/CrazhHolmes/SynapseScanner
From PyPI (when published):
pip install synapsescannerFrom source:
git clone https://github.com/CrazhHolmes/SynapseScanner.git
cd SynapseScanner
pip install .Or run directly without installing:
git clone https://github.com/CrazhHolmes/SynapseScanner.git
cd SynapseScanner
pip install -r synapsescanner/requirements.txt
python -m synapsescanner.universal_scanner "your query"# Search for a topic
synapsescanner "quantum entanglement"
# Limit results
synapsescanner "CRISPR" --max-results 5
# Fetch recent papers (no query)
synapsescanner
# Greyscale theme
synapsescanner "neural networks" --noir
# Matrix rain easter egg
synapsescanner --matrix
# Show CLI reference card
synapsescanner --cheatsynapsescanner [QUERY] [--max-results N] [--noir] [--matrix] [--cheat]
| Flag | Effect |
|---|---|
--max-results N |
Number of papers to fetch (default: 15) |
--noir |
Greyscale mode -- no color |
--matrix |
Matrix rain easter egg before scanning |
--cheat |
Print CLI reference card and exit |
# Multi-source search (default: arxiv, semantic_scholar)
synapsescanner "quantum" --sources arxiv,semantic_scholar,pubmed,biorxiv
# AI-powered summaries (requires Ollama or OpenAI API key)
synapsescanner "neural networks" --summarize
# Export to Obsidian markdown
synapsescanner "graphene" --md > notes.md
synapsescanner "AI" --export-obsidian ~/MyVault
# Export to JSON for piping
synapsescanner "physics" --json | jq '.papers[].title'
# Watch mode (check every 6 hours)
synapsescanner "CRISPR" --watch
synapsescanner "quantum" --watch --notify # with webhook
# Rabbit hole mode (follow references)
synapsescanner "time crystals" --depth 2
# Bypass cache
synapsescanner "new topic" --fresh| Variable | Equivalent flag | Description |
|---|---|---|
SYNAPSE_MATRIX=1 |
--matrix |
Enable Matrix-rain easter egg |
SYNAPSE_NOIR=1 |
--noir |
Force greyscale colors |
OPENAI_API_KEY |
- | Enable OpenAI summarization |
SYNAPSE_AI=ollama |
--summarize |
Default AI provider |
Environment variables and flags can be combined:
SYNAPSE_NOIR=1 synapsescanner --max-results 7- Clickable paper URLs -- Click a paper link in the progress bar to open it in your browser (OSC 8 hyperlinks, works in Windows Terminal, iTerm2, GNOME Terminal)
- Braille sparklines -- Keyword frequencies rendered as compact
โฃโฃโฃคโฃฆโฃถโฃทโฃฟbars using Unicode Braille patterns (U+2800) - True-color gradient banner -- 24-bit RGB interpolation from cyan to purple (not the 256-color palette)
- Discovery explanations -- Each detected pattern includes a short "why it matters" paragraph
- In-place progress bar -- Single-line rewrite with cursor hide/show, no scroll spam
- Crash-safe cursor --
atexithandler guarantees the terminal cursor is restored even on unexpected exit
SynapseScanner scans paper titles and abstracts for four cross-disciplinary pattern categories:
| Pattern | Keywords detected | Suggested experiment | Cost |
|---|---|---|---|
| Quantum breakthrough | quantum, entanglement, superposition | Quantum erasure with polarized lenses & laser pointer | ~$30 |
| Metamaterial lens | metamaterial, negative index | Stack microscope slides + oil for negative index demo | ~$20 |
| Temporal periodicity | time crystal, temporal, periodic | 555 timer + LED at 1 Hz | ~$5 |
| AI physics | neural, AI, machine learning | Train tiny model on pendulum data | ~$0 |
Active in v1.3.0:
| Source | URL | Status |
|---|---|---|
| arXiv | arxiv.org | โ Active -- Atom API |
| Semantic Scholar | semanticscholar.org | โ Active -- Graph API |
| PubMed | ncbi.nlm.nih.gov | โ Active -- E-utilities |
| bioRxiv/MedRxiv | biorxiv.org | โ Active -- Public API |
In whitelist (planned):
chemRxiv, OSF, Zenodo, NASA Technical Reports, OSTI, CERN, AIP, APS, IOP, PNAS, Nature, Science, Cell, Quanta Magazine, Phys.org, SciTechDaily
Add this function to your PowerShell $PROFILE for a shorter synapse command:
function synapse {
param(
[Parameter(Position=0)][string]$Query,
[int]$MaxResults = 15,
[switch]$Matrix,
[switch]$Noir,
[switch]$Cheat
)
$argsList = @()
if ($Query) { $argsList += $Query }
if ($MaxResults -ne 15) { $argsList += "--max-results"; $argsList += $MaxResults }
if ($Matrix) { $argsList += "--matrix" }
if ($Noir) { $argsList += "--noir" }
if ($Cheat) { $argsList += "--cheat" }
python -m synapsescanner.universal_scanner @argsList
}Then run:
synapse "quantum entanglement" # search
synapse "CRISPR" -MaxResults 5 # limit results
synapse "neural networks" -Noir # greyscale
synapse -Matrix # matrix rain
synapse -Cheat # reference cardSave as synapse.bat somewhere on your PATH:
@echo off
python -m synapsescanner.universal_scanner %*Then run:
synapse "quantum entanglement"
synapse "CRISPR" --max-results 5We welcome contributions! Here's how to extend SynapseScanner:
- Open
synapsescanner/universal_scanner.py - Add the domain to the
WHITELISTarray:WHITELIST = [ "arxiv.org", "biorxiv.org", ..., "your-new-source.org", # add here ]
- Extend
fetch_recent_papers()to handle the new domain's API:def fetch_recent_papers(domain="arxiv.org", query=None, ...): ... elif domain == "your-new-source.org": # Add API fetching logic here pass
- Open
synapsescanner/universal_scanner.py - Add detection logic in
detect_patterns():if any(kw in txt for kw in ["keyword1", "keyword2"]): patterns.append({ "pattern": "Your Pattern Name", "hint": "Suggested experiment description", "cost": "~$X", "difficulty": "Easy/Medium/Research", })
- Open
synapsescanner/cli_extras.py - Add an icon to
_ICONS:_ICONS = { ..., "Your Pattern Name": "๐ฌ", # pick a Unicode symbol }
- Add an explanation to
_EXPLANATIONS:_EXPLANATIONS = { ..., "Your Pattern Name": ( "A paragraph explaining why this pattern matters " "and what the suggested experiment demonstrates." ), }
- Run
flake8 synapsescanner/before submitting - Keep functions focused and well-documented
- Test on Windows (for encoding issues) if possible
PRs welcome!
- Python 3.9+
requests(only runtime dependency beyond stdlib)
MIT -- fork, hack, cite.