Roadmap
What we're building
A look at what's in progress, what's planned next, and what's already shipped.
Planned
Full git support
In-browser git implementation: clone, commit, push, pull, branch, merge, and diff operations backed by the virtual filesystem.
Mountable filesystem
Mount external filesystems into MemFS: host FS bridges, IndexedDB volumes, pre-built snapshots, and lazy-loaded directory trees.
WASM runtime support
First-class .wasm module support: load and execute WebAssembly binaries (ffmpeg, ImageMagick, SQLite, custom modules) with proper FS and memory bridging.
Kernel grep support
Built-in grep command in the kernel/shell with regex matching, recursive directory search, line numbers, and context lines (-A, -B, -C flags).
SQLite in-browser
sql.js with persistence — schema creation, queries, and IndexedDB-backed storage.
WebSocket support
Native WebSocket server and client APIs — replace the current ws stub with a functional implementation using MessageChannel or BroadcastChannel.
Full kernel isolation
Move module resolution, require(), and code execution into Web Workers — currently only transpilation is offloaded.
Networking and tunneling
WebSocket-to-TCP bridge, tunnel proxy for real domains, and Fetch API networking layer — run Next, Expo, Express with real domain access.
Next.js Server Actions
Support "use server" directive for form handling and server mutations — major gap in Next.js compatibility.
Run full projects
End-to-end project execution: npm/pnpm scripts with piped output, port exposure, dev server lifecycle, and multi-process orchestration.
Next.js Middleware
Execute middleware.ts in the request pipeline for auth, redirects, and rewrites.
Enhanced port exposing
Multi-port discovery, custom domain mapping, port forwarding hooks, and UI integration for exposed dev server ports.
npm install -g, npx, and precise npm support
Global package installs, full npx lifecycle (cache, versioning, --yes), npm link, npm ls, npm outdated, and better flag handling.
React Server Components
Conditional client/server rendering based on "use client" / "use server" directives.
pnpm add -g, pnpm dlx, and precise pnpm support
Global installs, full pnpm dlx lifecycle, pnpm exec, pnpm why, pnpm prune, and better flag/workspace handling.
Next.js ISR
Incremental Static Regeneration with revalidate timers for cached page responses.
Memory pressure management
Heap-aware eviction, streaming installs, GC hooks, and memory budget APIs to prevent browser tab crashes on large dependency trees.
Advanced Next.js routing
Parallel routes (@slot), intercepting routes (..), and i18n routing support.
Enhanced vm module
Better vm polyfill: iframe-based context isolation, execution timeouts, vm.compileFunction, source map offsets, and compilation caching.
Crypto key derivation
pbkdf2, scrypt, and HKDF implementations for password hashing and key stretching.
Shell system utilities
Built-in grep, head, tail, wc, sort, uniq, xargs, curl, tar, and sed commands for the jiki shell.
IPC channels
Real inter-process communication between spawned child processes via stdio 'ipc' and child.send().
Process signals
SIGTERM, SIGKILL, SIGINT semantics for graceful shutdown of child processes.
Tanstack examples and support
Provide examples and support for Tanstack libraries like React Query, Router, and Table. Create a full blown example of Tanstack Start.
Hard link support
fs.linkSync() / fs.link() alongside existing symlink support.
File permissions
Functional chmod/chown with permission bit checking (currently no-ops).
Windows path support
path.win32 implementation for cross-platform path handling.
Next.js Image optimization
Plugin-based next/image handling beyond the current img fallback.
SvelteKit full support
Move beyond stub implementation — full file-based routing, server routes, load functions, and HMR.
Remix full support
Complete the stub — loaders, actions, nested routes, error boundaries, and streaming.
Shell stdin/interactive input
Improve readline support for interactive prompts — Container.sendInput() works but isn't well-documented or robust.
Error message quality
Replace generic "Cannot find module" with contextual suggestions (did-you-mean, check node_modules, verify package.json).
VM sandboxing hardening
Current vm.runInNewContext() shares the JS context — evaluate Realm API or iframe isolation for untrusted code.
Async module resolution
Non-blocking require() for large dependency trees — currently synchronous and can block the main thread.
Incremental transpilation
Cache-aware partial recompilation instead of full esbuild pass on every change.
Stub module warnings
Reduce noise from repeated warnings on unsupported modules (async_hooks, cluster, dgram, etc.) — warn once, then silence.
Crypto algorithm coverage
Extend beyond SHA family — add MD5 (legacy compat), BLAKE2, and proper randomUUID.
DNS resolution
Move beyond hardcoded 127.0.0.1 — resolve against a configurable hostname map for dev server scenarios.
Snapshot metadata
Include full stat fields (atime, ctime, mode) in snapshots — currently only mtime is preserved.
Binary snapshot encoding
Use ArrayBuffer/Blob for binary content instead of base64 (33% storage overhead).
Module cache tuning
Make the 4000-module LRU limit configurable — large projects may need more, small ones waste memory.
Type checker depth
Move from heuristic pattern matching toward proper type inference for common patterns (generics, union narrowing).
Circular dependency handling
Better detection and error reporting for circular require() chains beyond the basic visited-set approach.
Kimi coding assistant
Kimi (Moonshot AI) integration mirroring the Claude/Mistral examples — expands AI model coverage to a third provider.
Full-stack Remix
Remix with loaders, actions, nested routes, and error boundaries — showcases the full dev server.
Solid.js
SolidJS with fine-grained reactivity — expands framework coverage beyond React/Vue/Svelte.
GraphQL server + client
Apollo Server schema execution + Apollo Client queries in a single container.
E2E testing
Browser-based test runner showing component testing with assertion visualization.
Package development
Create, build, and test an npm package end-to-end — package.json, TypeScript compilation, test suite.
create-jiki CLI
Scaffold new jiki projects or recreate examples with npm create jiki@latest.
Multi-model AI comparison
Side-by-side Claude vs Mistral vs Kimi — same prompt, different models, compare outputs.
Monorepo multi-framework
pnpm workspaces with React + Vue + shared utils — demonstrates cross-framework workspace linking.
ESLint + Prettier
Lint and format pipeline — configure rules, run checks, auto-fix.
Static site generator
Minimal SSG from scratch — markdown parsing, template rendering, file output.
Web Components
Vanilla custom elements with Shadow DOM — no framework, pure browser APIs.
Fastify server
Fastify with schema validation, serialization, and plugin system.
Astro guide
Astro is a supported framework with an example but has no dedicated guide (React, Next.js, Vue, Vite all have guides).
pnpm deep dive
pnpm layout, workspaces, and differences from npm — currently mentioned but not explained in depth.
Container.sendInput() API
Interactive stdin is shipped but sendInput() is not documented in the Container API reference.
Custom polyfill authoring
registerPolyfill() is briefly mentioned — needs a guide on creating and registering custom Node.js polyfills.
Error parsing utilities
parseError() and formatErrorHtml() are referenced in errors.mdx but lack full API documentation.
Svelte guide
Svelte has an example and dev server but no dedicated getting-started guide.