What happens after an input is still the best part of a UI. We like seeing/hearing/feeling things in different ways.
11,151 karma · joined June 17, 2008
What happens after an input is still the best part of a UI. We like seeing/hearing/feeling things in different ways.
The physical device that is best for me is probably the best car compromise for several million other people.
if my ex calls and I want my glass brick to flash the "help me" in SOS on the screen, play Hector Berlioz, and dim all the lights in the room – I can have that. I don't have to want the same thing a million other people do.
Everything I want to pay attention to gets a token, the server goes and looks for stuff in the api, and seeds local sqlites. If possible, it listens for webhooks to stay fresh.
Mostly the interface is Claude code. I have a web view that gives me some idea of volume, and then I just chat at Claude code to have it see what's going on. It does this by querying and cross referencing sqlite dbs.
I will have claude code send/post a response for me, but I still write them like a meatsack.
It's effectively: long lived HTTP server, sqlite, and then Claude skills for scripts that help it consistently do things based on my awful typing.
It's really useful to just turn a computer on, use a disk, and then plop its url in the browser.
I currently do one computer per project. I don't even put them in git anymore. I have an MDM server running to manage my kids' phones, a "help me reply to all the people" computer that reads everything I'm supposed to read, a dumb game I play with my son, a family todo list no one uses but me, etc, etc.
Immediate computers have made side projects a lot more fun again. And the nice thing is, they cost nothing when I forget about them.
Yes.
They won't horizontally scale. They're pretty good for hosting my side projects! Not good for, eg, hosting the API that orchestrates Sprites.
Tigris has a one-to-one FUSE that does what you want: https://github.com/tigrisdata/tigrisfs
The meta store is a bottleneck too. For a shared mount, you've got a bunch of clients sharing a metadata store that lives in the cloud somewhere. They do a lot of aggressive metadata caching. It's still surprisingly slow at times.
npm install hasn't bothered me, but I know of people with massive npm issues that would like faster first installs. Fortunately, it's incrementally quicker after that.
The storage performs pretty well for running claude + my dev. It'll improve immensely in the next few months, though. We should be able to get near native NVMe speeds for the working storage set on reads/writes/flush/fua.
var envVars []string
shellEnvVars := []string{
"BASH_VERSION",
"ZSH_VERSION",
"FISH_VERSION",
"KSH_VERSION",
"tcsh",
"SHELL",
}
It's also reading terminfo. It's not handling absolute paths to shells properly, though.If you want to skip this, running `sprite exec -tty /bin/bash --login` or similar avoids the magic.
If the fat bundled environment harmful for you, or just extra stuff you don't care about?
https://github.com/superfly/sprites-js/tree/main/examples https://github.com/superfly/sprites-go/tree/main/examples https://github.com/superfly/sprites-py/tree/main/examples https://github.com/superfly/sprites-ex/tree/main/examples
SQLite works great for my apps. I haven't needed object storage yet, storing files on disk is enough.
You can specify a max exec time for a process when you launch it via the API.
It requires your api token by default.
I think Claude Code's magic is that Anthropic is happy to burn tokens. The loop itself is not all that interesting.
What is interesting is how they manage the context window over a long chat. And I think a fair amount of that is serverside.