viway — Project Knowledge Base SecretaryA VSCode extension that automatically maintains a structured project knowledge base in the
🌐 Website: vimoi.online/viway — overview & screenshots. viway is free (MIT) — if it's useful, 💜 support the project / donate (or use the Sponsor button on this page). WhyLong conversations with coding agents blur quickly: decisions get lost in the scroll, new sessions don't remember what was discussed yesterday, facts get duplicated. viway turns the flow of conversation into a living wiki — with no manual work.
What the extension does
Installation
After installing:
Requirements
The
|
| Folder | Purpose |
|---|---|
00_archive/ |
Snapshots for rollback (managed by the extension, do not edit) |
01_intent/ |
Why the project exists — about.md, mission, scope |
02_inputs/ |
External material — articles, RFCs, links |
03_process/ |
Work journal — daily/YYYY-MM-DD.md, append-only |
04_relations/ |
Relationship graph + architectural decisions |
05_plans/ |
Active plans, specs, mission briefs |
06_open/ |
Open questions (one file = one question); _closed/ — closed ones with YAML frontmatter for /recall |
07_visualization/ |
Themes, diagrams, visual artifacts |
Key settings
API keys are stored in VSCode SecretStorage:
viway.openRouterApiKey,viway.anthropicApiKey,viway.alibabaApiKey
Active provider: viway.provider (openrouter | anthropic | alibaba).
Frequently changed settings (Settings webview):
viway.agentDepth(quick/standard/deep/unlimited) — max iterations per turn (5 / 15 / 25 / 50)viway.maxOpsPerFolder(1–5) — op limit per folder per turnviway.maxTokens— output budget per LLM callviway.reasoning(off/low/medium/high) — thinking budgetviway.transcriptSource(all/claude/codex)viway.processScope(lastSession/lastTurn/last5Turns) — scope for the manual ▶ Runviway.autoProcess— auto-processing on the Stop hook (defaulttrue)viway.preClassifierEnabled— deterministic SKIP of trivial turns (defaulttrue)viway.skipTrivialContinuations— skip "continue"-style chunks even in manual modeviway.excludedSessions— list of session UUIDs excluded from the auto-triggerviway.legacyWorkspacePaths— old project paths after a folder moveviway.llmHttpTimeoutSeconds(default 120) — hard timeout on the LLM HTTP fetch
State persistence
.viway/.state/ (mode 0600 for endpoint.json):
| File | Purpose |
|---|---|
processed.json |
Processing cursors per session + per-turn records |
harvest-history.json, harvest-logs/ |
✨ Harvest history + detailed traces |
turn-logs/<session>.<endUuid>.json |
Detailed trace of each per-turn run |
cumulative-metrics.json |
Cumulative metrics (calls / tokens / cost / conflicts) |
processing-history.json |
Last 50 runs (for the dashboard) |
queries.json |
Log of POST /query requests (FIFO 100) |
snapshots.json |
Snapshot registry |
endpoint.json |
Communicator endpoint URLs + Bearer token |
mission.json |
Active orchestrator mission + history (last 20) |
note_inbox/ |
Inbox for POST /note records until the secretary consumes them |
session-roles.json |
Session labels (implementer / reviewer / O / D) |
last-call.md |
Markdown diagnostics of the last LLM call |
Workspace migration
When you move the folder, add the old path to viway.legacyWorkspacePaths — the secretary will find the old Claude Code transcripts in ~/.claude/projects/<encoded-path>/*.jsonl. Codex sessions aren't recovered (the cwd is baked into session_meta).
Diagnostics
- Odd spend / too many iterations →
viway: Audit secretary work(a Markdown report with anomalies and the last call inline). - The per-turn run writes nothing → click a block in the timeline → Turn detail → the Tool calls + Errors sections.
- Harvest produced 0 ops →
cat .viway/.state/harvest-logs/<folder>.<iso>.json | python3 -m json.tool(thefinalAssistantTextoften explains why it skipped). - Transcripts not found after a move → ⚙ → Workspace alias paths.
- VSCode doesn't see the new VSIX version → ⚙ → Maintenance → 🔄 Update extension (Reload Window).
- "Hook not installed" after installing (Windows) → fixed in 0.9.23; if it recurs, open an issue.
Build from source
cd v3/extension
npm install
npx tsc --noEmit # type check
npm test # vitest (640+ tests)
npm run verify:webview # bundle + vm.Script for the dashboard inline JS
npm run package # → viway-v3-<version>.vsix
Documentation
CHANGELOG.md— full release historyAGENTS.md— instructions for third-party code agents working with this repodocs/ui-smoke-checklist.md— manual UI check before a release
