– by Valentin Golev, Alexandru Sasu
Salami is a “serverless”, storable programming language: its process is just a binary string. This string contains all the information on what the process expects next, and what it should do afterwards. One can easily store it in a database, waiting for the next event; send it to a different server, or even a different actor; change it to adapt to some new circumstances. You could compare it to Ethereum’s smart contracts, without the blockchain; or to “worse is better” Urbit: it’s the most flexible, simple substrate of those ideas.
Salami aims to support scripts like this: “Send an email to propose a meeting, wait a week for a reply and follow-up if needed (let me approve the draft), cross-check my calendar in response, if needed contact me for the next steps”. Such ad-hoc instructions, and the massive flexibility they demand, are the future of the AI interfaces. This is not a script that can simply be transformed to JS and run somewhere. The usual programming languages don’t support a week-long await safely and reliably. They aren’t helpful when we want to let our users revise and confirm the next steps. They’d require a complicated sandbox and API design to give users affordances for safe and reliable outcomes. It’d be an unbearable expense to maintain the infrastructure and the systems of trust needed to run multitudes of such scripts for our users simultaneously in a conventional way.
Such a script is as an ad-hoc protocol of revisable communication between several parties: the users, the systems, and the AI agents. Turing completeness of such a meta-protocol requires the power of a programming-language-like solution, but with a vastly different execution model: the “serverless”, location-agnostic computation Salami proposes.
Apart from the new execution model, Salami has affordances for undoable, revisable, controllable, safe async APIs. Those are a necessity for amateur-user-driven scripting. The ultimate aim is the minimization of regret for all the parties (read more here).
Salami aims to make any existing app scriptable, no matter how simple or unusual its architecture is, and able to take part in the meta-protocol network in a very advanced and safe way – to empower the users. In just a few lines of code, Salami can be embedded into the existing apps, including Python, JS, or browser-only ones. It’s also a great compilation target for workflows and visual programming tools. This radical ease of embedding Salami into existing apps is what sets it apart from many spiritually close projects that typically would require massive buy-in on the architectural level to integrate.
- Existing target protocol – Salami is an evolution of the classical “C” process model with insights from the blockchain VMs, Urbit, and linear-logic-based formal systems.
- Core idea – the storable process: one that can pause on awaiting and turn themselves into cold-storable binary strings that can continue executing elsewhere.
- Discovery methodology – Interviewing potential integrators and end-users, LLM-based experiments with code writing.
- Prototype – an end-to-end prototype of the system (cutting a lot of corners at first), and a cool demo.
- Field-test – we’ll start with a couple of demos, and try to find interested external users.
- Judges – we have some interested app developers, who themselves, along with their users, would be the best judges of the tool.
- Output – a completely open-source library (Rust core, MIT license) + papers.
- Success vision – Salami to power the newly-scriptable, multi-actor Web.