/* Install/download landing — v5 * Unified long vertical chart structure: * Hero (big H1 + copy) above the manifest * Manifest with one spine and 5 numbered nodes: * §00 install — install panel + facts * §01 family — 4 MCPs as chart rows (Pertel-style lockups) * §02 @sch -f modes — sift modes as chart rows * §03 four things — 4 pillars as chart rows * §04 @sch -d vs @sch p — comparison chart * Transcript + footer below. */ function JsonBlockB({ text }) { const html = text .replace(/(\/\/[^\n]*)/g, '$1') .replace(/("(?:[^"\\]|\\.)*")(\s*:)/g, '$1$2') .replace(/:\s*("(?:[^"\\]|\\.)*")/g, ': $1') .replace(/([{}\[\],])/g, '$1'); return
;
}
function PlainBlockB({ text }) {
  const html = text.replace(/(#[^\n]*)/g, '$1');
  return 
;
}

/* MCP tagline + by host — applied page-wide in Pertel-style lockup format */
const MCP_META = {
  workbench: { tagline: 'workbench',     by: 'by Schedii' },
  dash:      { tagline: 'dash',          by: 'by Schedii' },
  sift:      { tagline: 'sift',          by: 'by AkrosInfra' },
  full:      { tagline: 'full',          by: 'by Schedii' },
};

/* @sch -d (Pertel Dash) vs @sch p (Pertel Full) — comparison rows */
const VS_ROWS = [
  {
    axis: 'role',
    left:  <>lite intelligence layer
memory · logs · handoff · context-keep, right: <>full Pertel
workbench + dash + sift + discovery, }, { axis: 'size', left: <>lite. Portable. One folder., right: <>full. The whole stack., }, { axis: 'touches', left: <>.pertel/*.md
local folder · lite reads of @sch, right: <>.pertel/ + schedii backend
workspace-scoped · full read+write, }, { axis: 'side effects', left: <>almost none. Reads + writes markdown., right: <>mutates. Always proposes first; confirm to apply., }, { axis: 'first call', left: <>@sch -d begin, right: <>@sch p open, }, { axis: 'you ask', left: <>“what did we say?”
“don’t blow my context.”, right: <>“where are we?”
“ship this.”, }, { axis: 'works with', left: <>claude · gpt · manus, right: <>claude · gpt · manus, }, { axis: 'covers', left: <>memory + logs + handoff, right: <>@sch + -d + -f + discovery, }, ]; /* Loud pillars — chart-row format */ const LOUD = [ { n: '01', icon: ( ), accent: 'cyan', head: <>Memory that stays., body: 'Every turn pinned to a session. Recall by fact, by date, by tag. Forgets only when you say so. Survives a model swap.', tags: ['memory', 'append-only', '.pertel/'], ns: '@sch -d remember · @sch -d recall', }, { n: '02', icon: ( ), accent: 'cyan', head: <>Token max-out, solved., body: 'Pertel keeps your conversation outside the model\u2019s context window. Hand off mid-thread, drop into Claude, GPT, or Manus, keep going \u2014 no re-explaining.', tags: ['claude', 'gpt', 'manus'], ns: '@sch -d handoff · @sch -d recall', }, { n: '03', icon: ( ), accent: 'cyan', head: <>Logs you can grep., body: 'Append-only markdown per session. Human-readable, diff-friendly, grepable from day one. No DB, no schema migrations, no surprise.', tags: ['markdown', 'diff', 'grep'], ns: '@sch -d tail · @sch -d log', }, { n: '04', icon: ( ), accent: 'amber', head: <>A filter that refuses., body: 'Drop your idea, draft, plan, or code into @sch -f. The Schedii Bible + AkrosInfra frameworks (Reminiscence Meter, Verify Before Done, Safe-Write, Stable-ID Worklist, Discipline-as-MCP) sift, kill the junk, re-separate the rest.', tags: ['full', 'ndv', 'ndvr', 'custom'], ns: '@sch -f full · @sch -f ndvr', }, ]; function DirectionB() { const [tab, setTab] = React.useState('claude'); const [copied, setCopied] = React.useState(false); const isJson = tab === 'claude' || tab === 'cursor'; const handleCopy = () => { try { navigator.clipboard.writeText(INSTALL_SNIPPETS[tab] || ''); setCopied(true); setTimeout(() => setCopied(false), 1400); } catch (e) {} }; return (
{/* HERO — copy above the manifest */}
mcp.schedii.app · v0.4.1-alpha

Install once. Recall Efficiently.

Pertel is the Schedii MCP for conversational memory, append-only markdown logs, and doc handoff between sessions. Most importantly, the contained logic prevents token / session max-out like problems. It also helps you find your stasis with knowledge retention.{' '} In development.

@sch HomeRunner ships the workbench to you in a way that is closer than ever. Adapt us into your workflow — you won’t regret it.

{/* THE MANIFEST — unified vertical chart inside ONE tall card */}
{/* §00 — Install */}
§00

Install.

drop the JSON in claude · cursor · chatgpt · cli
mcp config · paste into your client {copied ? '● copied' : '● ready'}
{[ ['claude','Claude Desktop'], ['cursor','Cursor'], ['chatgpt','ChatGPT'], ['cli','CLI / npx'], ].map(([k,label]) => ( ))}
{isJson ? : }
~/.config/{tab === 'cursor' ? 'cursor/mcp.json' : tab === 'claude' ? 'Claude/claude_desktop_config.json' : tab === 'chatgpt' ? 'chatgpt/connectors' : 'shell'} · requires SCHEDII_API_TOKEN
{/* bridge §00 → §01 */}
install → family
{/* §01 — The family */}
§01

The family.

four namespaces 4 mcps · 1 binary · 1 key
{MCPS.map(m => { const s = STATUS_LABEL[m.status]; const meta = MCP_META[m.id] || {}; return (
{m.namespace} {m.id}
{m.name} {meta.tagline} {meta.by}
{m.blurb}
{m.tools.slice(0, 4).map(t => {t})}
{s.text}
); })}
1 binary · @schedii/mcp 1 key · SCHEDII_API_TOKEN 1 env · SCHEDII_MCPS=scp,sch,scpf,scpo enable any subset · per-workspace
{/* bridge §01 → §02 */}
family → sift modes
{/* §02 — @sch -f modes */}
§02

@sch -f {' '}modes.

filter, graded pre · mid · post any work
{SCPF_MODES.map(m => (
{m.cmd} {m.name.toLowerCase()}
{m.name}
{m.desc}
{m.cmd === '@sch -f full' && 'heaviest sift'} {m.cmd === '@sch -f ndv' && '+ neurodivergent lens'} {m.cmd === '@sch -f ndvr' && '+ reasoning trace'} {m.cmd === '@sch -f custom' && 'tunable, multi-question'}
))}
not a guarantee · worth the pass · use like: @sch -f full — sift this against the bible reminiscence meter · verify before done · safe-write · stable-id worklist · discipline-as-mcp
{/* bridge §02 → §03 */}
sift → four things
{/* §03 — Four things, well */}
§03

Four things, well.

memory · context · log · filter
{LOUD.map((p) => (
{p.n}
{p.icon}

{p.head}

{p.body}

{p.tags.map((t, i) => {t})}
{p.ns}
))}
{/* bridge §03 → §04 */}
four things → dash vs full
{/* §04 — @sch -d vs @sch p */}
§04

@sch -d {' '}vs{' '} @sch p .

dash vs full one namespace · two modes · same key
@sch -d
Pertel Dash
dash {' '}· lite · context-keep
memory logs handoff no-token-burn
vs
@sch p
Pertel
full {' '}· all capability
workbench memory sift discovery
{VS_ROWS.map((r, i) => (
{r.left}
{r.axis}
{r.right}
))}
one binary · @schedii/mcp one key · SCHEDII_API_TOKEN @sch -d when you need memory · {' '}@sch p when you need everything
{/* Once installed — transcript */}

Once installed.

a real session, abridged
{INVOKE_LINES.map((l, i) => (
{l.who}
{l.text.split(/(@sch\s+-d|@sch\s+-f|@sch\s+-o|@sch\s+p|@sch)/g).map((p, j) => (p && p.startsWith('@sch')) ? {p} : {p} )} {i === INVOKE_LINES.length - 1 && }
))}
mcp.schedii.app @schedii/mcp · v0.4.1-alpha homerunner · v1.2.0-beta snapshot · 2026-05-22 akros · infra
); } window.DirectionB = DirectionB;