Researchtwin — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Researchtwin (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
ResearchTwin is an open-source, federated platform that transforms a researcher's publications, datasets, and code repositories into a conversational Digital Twin. Built on a Bimodal Glial-Neural Optimization (BGNO) architecture, it enables dual-discovery where both humans and AI agents collaborate to accelerate scientific discovery.
Live at [researchtwin.net](https://researchtwin.net) | [Join the Network](https://researchtwin.net/join.html)
The exponential growth of scientific outputs has created a "discovery bottleneck." Traditional static PDFs and siloed repositories limit knowledge synthesis and reuse. ResearchTwin addresses this by:
Data Sources Glial Layer Neural Layer Interface
┌──────────────┐ ┌─────────────┐ ┌──────────────┐ ┌────────────┐
│Semantic Scholar│───▶│ │ │ │ │ Web Chat │
│Google Scholar │───▶│ SQLite │───▶│ RAG with │───▶│ Discord │
│GitHub API │───▶│ Cache + │ │ Claude API │ │ Agent API │
│Figshare API │───▶│ Rate Limit │ │ │ │ Embed │
└──────────────┘ └─────────────┘ └──────────────┘ └────────────┘| Tier | Name | Description | Status |
|---|---|---|---|
| Tier 1 | Local Nodes | Researchers run python run_node.py locally | Live |
| Tier 2 | Hubs | Lab aggregators federating multiple nodes | Planned |
| Tier 3 | Hosted Edges | Cloud-hosted at researchtwin.net | Live |
Machine-readable endpoints with Schema.org @type annotations:
| Endpoint | Schema.org Type | Purpose |
|---|---|---|
GET /api/researcher/{slug}/profile | Person | Researcher profile with HATEOAS links |
GET /api/researcher/{slug}/papers | ItemList of ScholarlyArticle | Papers with citations |
GET /api/researcher/{slug}/datasets | ItemList of Dataset | Datasets with QIC scores |
GET /api/researcher/{slug}/repos | ItemList of SoftwareSourceCode | Repos with QIC scores |
GET /api/discover?q=keyword&type=paper | SearchResultSet | Cross-researcher search |
git clone https://github.com/martinfrasch/researchtwin.git
cd researchtwin
pip install -r backend/requirements.txt
cp node_config.json.example node_config.json
# Edit node_config.json with your details
python run_node.py --config node_config.jsoncp .env.example .env # Add your API keys
docker-compose up -d --buildRequired API keys: ANTHROPIC_API_KEY (for Claude RAG) Optional: S2_API_KEY, GITHUB_TOKEN, DISCORD_BOT_TOKEN, SMTP credentials
researchtwin/
├── backend/
│ ├── main.py # FastAPI endpoints (REST + Discovery API)
│ ├── researchers.py # SQLite researcher CRUD + token management
│ ├── database.py # SQLite schema, WAL mode, migrations
│ ├── models.py # Pydantic models for all endpoints
│ ├── rag.py # RAG context assembly for Claude
│ ├── qic_index.py # S-Index / QIC computation engine
│ ├── email_service.py # SMTP service for profile update codes
│ ├── connectors/ # Data source connectors
│ │ ├── semantic_scholar.py
│ │ ├── scholarly_lib.py # Google Scholar via scholarly
│ │ ├── github_connector.py
│ │ └── figshare.py
│ └── discord_bot/ # Discord bot with /research and /sindex
├── frontend/
│ ├── index.html # Main dashboard with D3.js knowledge graph
│ ├── join.html # Self-registration page
│ ├── update.html # Email-verified profile updates
│ ├── privacy.html # Privacy policy
│ └── widget-loader.js # Embeddable chat widget
├── run_node.py # Tier 1 local node launcher
├── node_config.json.example # Local node configuration template
├── docker-compose.yml # Docker orchestration
├── nginx/ # Nginx reverse proxy + SSL
└── whitepaper.tex # LaTeX manuscriptThis repository is part of the [ResearchTwin Ecosystem](https://github.com/users/martinfrasch/projects/8) project:
| Repository | Description |
|---|---|
| [researchtwin](https://github.com/martinfrasch/researchtwin) | Federated platform (this repo) |
| [s-index](https://github.com/martinfrasch/s-index) | S-Index formal specification and reference implementation |
Show your S-Index on your lab website, Google Sites page, or personal homepage:
<iframe
src="https://researchtwin.net/embed.html?slug=YOUR-SLUG"
width="440" height="180"
style="border:none; border-radius:12px;"
loading="lazy">
</iframe>Replace YOUR-SLUG with your researcher slug (e.g. martin-frasch).
Google Sites: Edit page > Insert > Embed > "By URL" tab > paste https://researchtwin.net/embed.html?slug=YOUR-SLUG
WordPress: Add a Custom HTML block and paste the iframe code.
The widget displays the researcher's name, S-Index score, h-index, citation count, and paper count. Data updates automatically from live API sources.
See it in action | Full embed instructions
| Document | Description |
|---|---|
| API Reference | Full REST API documentation with schemas and examples |
| Self-Hosting Guide | Tier 1 Local Node setup and configuration |
| Hub Federation Guide | Tier 2 Hub architecture and setup (planned) |
| Security Policy | Vulnerability reporting and security best practices |
Contributions welcome! See the project board for tracked issues.
MIT License. See LICENSE.
Empowering researchers and AI agents to discover, collaborate, and innovate together.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.