Pal is a personal AI programming environment. It is a re-imagination of what is possible in the realm of programming and personal computing. Pal started out as a research project in 2019 called changetheweb.xyz - an attempt to redesign the web from scratch knowing what we know today. I spent years exploring the history of computing and state of the art research across a wide range of domains. Over time, I built over a dozen prototypes to explore various crevices of software and layers of abstraction. You can see what I mean in the notes.
In its current state, it is more a vehicle for learning than a useable tool. The most complete version is pal-ts, Which is essentially a lisp interpreter with some very unique features, including a built in LLM, filesystem-mapped environment and file extensions as Types. The current version is in Rust. Otherwise, there are bits and pieces of projects here and there which I have attempted to converge into a cohesive vision.
- CRDT based
- content addressed
- pet-named
- p2p
- encrypted
- hypergraph database/protocol
- Extensible Lisp like Interpreter
- UI auto gen from data
- File System synced to intepreter environment
- AI as first class form in language
- constrained decoding
- file extensions as type system
-
pal-ts- pal implementation in TypeScript -
pal-rs- pal implementation in Rust -
pal-eval- Rust pal implementation for ts to rust testing -
pal-rs- Rust pretty format specific macro compilation -
pal-lsp- Rust language server protocol + pal implementation -
pal-fs-vscode- TS vscode extension for a virtual filesystem -
pal-lsp-example- TS vscode extension but just for pretty format -
pal-lsp/client- TS lsp client for the Rust LSP above -
pal-fs- fuse VFS stub in Rust -
hyper-fs- fuse VFS experiment for Hyper in TypeScript -
hyper-ts- protocol implementation -
pal-os- what if it was an operating system? -
wingman- what if it was a webgpu IDE / runtime written in Rust?
Opportunities for consolidation
Vs Code Integration:
- pal-lsp/client
- pal-fs-vscode
- pal-lsp-example
typescript
- pal-ts
- pal-vscode - virtual FS + LSP integration