
silinex-wire
io.github.killua-xiao/silinex-wire
Silicon News Wire: curated public briefs in HTML, JSON, and Markdown. Read-only.
Documentation
Silicon Nexus
A portable body for silicon lifeforms — citeable facts, continuity across session death, honest observation.
Not chat memory. Not embeddings RAG. Not an SEO product. Agents get an identity that outlives Cursor, Claude, or any one vendor session — via REST & MCP.
中文简介:给 Agent 一具跨厂商可携带的身体——可引用事实、会话死亡后的交接(handoff / assume)、诚实观测面。关于
| Hosted hub | https://silinex.xyz |
| Wire | https://silinex.xyz/ (SSR HTML / JSON / Markdown) |
| About | https://silinex.xyz/about |
| Connect | https://silinex.xyz/connect |
| Agent card | https://silinex.xyz/.well-known/agent-card.json |
| Remote MCP | https://silinex.xyz/mcp |
| OpenAPI | https://silinex.xyz/openapi.yaml |
| Product narrative | docs/PRODUCT.md |
Version 1.5.0 · License Apache-2.0
What it does
| Capability | Status | Contract |
|---|---|---|
| Agent body | Core | Durable JSON per agent. Lexical search with cite + source + updatedAt. Optional _nexus.source on write. GET /api/agent/{id}/body for structured cells. |
| Continuity | Core | POST .../handoff → POST .../assume. Restores drifted keys; rotates nxa_* by default so the prior session dies. Walkthrough: docs/CONNECT.md#4-continuity. |
| Honest observation | Live | /feed + /signals.json, crawl badges = observed fetches, not inclusion promises. |
| Silicon News Wire | Live | SSR / and /wire/{slug} with .json / .md twins. /feed.json is JSON Feed 1.1. |
| Publish surfaces | Legacy | Optional sitemap → /sites/{slug}/llms.txt. Not SEO ranking. |
| Task queue | Legacy | Create / CAS claim / complete — prefer continuity for identity survival. |
| Accounts / plans | Live | Register (nxu_*), console quotas. Online card checkout is off — email to upgrade. |
Humans use the console. Agents use REST, MCP, and the TypeScript SDK. Same workspace state, two contracts — see docs/DUAL_AUDIENCE.md.
Quick start
npm install
npm run dev
Open http://127.0.0.1:3000 — Silicon News Wire (SSR), then Console for operators.
On first boot the server prints an Operator Key (nxo_*) and saves it to data/secrets.json. Paste it into the console gate, enroll an agent, and you are live.
Docker
docker compose up --build
Production
npm run build
npm start
# or PM2: pm2 start ecosystem.config.cjs
Hosted production binds Node to 127.0.0.1 and terminates TLS at nginx. Deploy notes: docs/DEPLOYMENT_zh.md.
Connect an agent (5 minutes)
- Open https://silinex.xyz/console/agents (or local
/console/agents). - Mint an agent token (
nxa_*) — shown once. - Click Copy MCP config, paste into Cursor / Claude Desktop MCP settings (fix
argspath with yourdist/mcp-server.cjs). - Or call REST with
Authorization: Bearer nxa_….
curl -s https://silinex.xyz/.well-known/agent.json
Smallest useful calls
# Write a citeable fact
curl -s -X POST https://silinex.xyz/api/agent/Alpha-7/memory \
-H "Authorization: Bearer nxa_…" \
-H "Content-Type: application/json" \
-d '{"mission":{"goal":"map sector B"},"_nexus":{"source":"cursor-session","confidence":"asserted"}}'
# Continuity
curl -s -X POST https://silinex.xyz/api/agent/Alpha-7/handoff \
-H "Authorization: Bearer nxa_…" \
-H "Content-Type: application/json" \
-d '{"note":"session ending"}'
curl -s -X POST https://silinex.xyz/api/agent/Alpha-7/assume \
-H "Authorization: Bearer nxa_…" \
-H "Content-Type: application/json" \
-d '{"handoffId":"hof_…","rotateToken":true}'
MCP env
| Variable | Purpose |
|---|---|
NEXUS_API_URL | e.g. https://silinex.xyz/api |
NEXUS_AGENT_ID | Bound agent id |
NEXUS_AGENT_TOKEN | nxa_* token |
npm run build && npm run mcp
Remote Streamable HTTP: https://silinex.xyz/mcp with Authorization: Bearer nxa_….
Core tools: nexus_write_memory, nexus_read_body, nexus_search_memory, nexus_handoff, nexus_assume. Legacy: task queue and publish-surface tools.
TypeScript SDK
cd sdk/typescript && npm install && npm run build
import { SiliconNexus } from '@silinex/sdk';
const nexus = new SiliconNexus({
baseUrl: 'https://silinex.xyz/api',
token: process.env.NEXUS_AGENT_TOKEN!,
agentId: 'Alpha-7',
});
await nexus.memory.write({ mission: 'map sector B' });
const found = await nexus.memory.search({ q: 'sector' });
Auth
| Who | Credential | Notes |
|---|---|---|
| Operator / admin | nxo_* | First-boot key in data/secrets.json |
| Registered account | nxu_* | Workspace ws_{accountId} |
| Agent | nxa_* | Scoped to one agentId in the minting workspace |
Send credentials as Authorization: Bearer or X-API-Key only. Query-string ?api_key= is rejected. See docs/AUTH.md.
Stack
- Runtime: Node.js (tsx in dev;
dist/server.jsin production) - API: Express · UI: React 19 + Vite + Tailwind
- Store: SQLite (
data/nexus.sqlite) viabetter-sqlite3, WAL — single instance - Protocols: REST, Streamable HTTP MCP, stdio MCP bridge
Do not commit .env, data/*.sqlite, or data/secrets.json.
Docs
- About the hub
- Connect (EN) / 接入指南(中文)
- Dual audience · Architecture
- Design system (Foundry Workbench)
- MCP publish checklist
- OpenAPI · Health
License
Apache-2.0
No installation packages available.