Repository avatar
AI Tools
v1.5.0
active

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 hubhttps://silinex.xyz
Wirehttps://silinex.xyz/ (SSR HTML / JSON / Markdown)
Abouthttps://silinex.xyz/about
Connecthttps://silinex.xyz/connect
Agent cardhttps://silinex.xyz/.well-known/agent-card.json
Remote MCPhttps://silinex.xyz/mcp
OpenAPIhttps://silinex.xyz/openapi.yaml
Product narrativedocs/PRODUCT.md

Version 1.5.0 · License Apache-2.0

What it does

CapabilityStatusContract
Agent bodyCoreDurable JSON per agent. Lexical search with cite + source + updatedAt. Optional _nexus.source on write. GET /api/agent/{id}/body for structured cells.
ContinuityCorePOST .../handoff → POST .../assume. Restores drifted keys; rotates nxa_* by default so the prior session dies. Walkthrough: docs/CONNECT.md#4-continuity.
Honest observationLive/feed + /signals.json, crawl badges = observed fetches, not inclusion promises.
Silicon News WireLiveSSR / and /wire/{slug} with .json / .md twins. /feed.json is JSON Feed 1.1.
Publish surfacesLegacyOptional sitemap → /sites/{slug}/llms.txt. Not SEO ranking.
Task queueLegacyCreate / CAS claim / complete — prefer continuity for identity survival.
Accounts / plansLiveRegister (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)

  1. Open https://silinex.xyz/console/agents (or local /console/agents).
  2. Mint an agent token (nxa_*) — shown once.
  3. Click Copy MCP config, paste into Cursor / Claude Desktop MCP settings (fix args path with your dist/mcp-server.cjs).
  4. 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

VariablePurpose
NEXUS_API_URLe.g. https://silinex.xyz/api
NEXUS_AGENT_IDBound agent id
NEXUS_AGENT_TOKENnxa_* 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

WhoCredentialNotes
Operator / adminnxo_*First-boot key in data/secrets.json
Registered accountnxu_*Workspace ws_{accountId}
Agentnxa_*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.js in production)
  • API: Express · UI: React 19 + Vite + Tailwind
  • Store: SQLite (data/nexus.sqlite) via better-sqlite3, WAL — single instance
  • Protocols: REST, Streamable HTTP MCP, stdio MCP bridge

Do not commit .env, data/*.sqlite, or data/secrets.json.

Docs

License

Apache-2.0

No installation packages available.

Remote