I’ve just published an article about Fusibile 🦀
It started from a simple idea:
What if SFTP, S3, SMB, WebDAV, Kubernetes, and other remote filesystems could just look like normal local folders?
That led from RemoteFs, to remotefs-fuse, and finally to Fusibile: a CLI that mounts remote filesystems locally via FUSE/macFUSE/Dokany.
In the article, I explain how the whole stack works, why UID/GID handling gets weird, and how protocol abstraction eventually turned into an actual mounted filesystem.
blog.veeso.dev/blog/en/mount…
Why have #Rust Conferences become irrelevant to me?
Higher prices, increasingly corporate audiences, recycled, polished Rust-adoption talks, fewer weird ideas, less community energy.
Rust conferences used to make me go home wanting to build something.
Now I mostly go home bored, unable to name a single keynote I've attended.
I wrote about why I think that happened: blog.veeso.dev/blog/en/why-r…
One of the biggest hurdles for new smista․ai users is configuration.
Since smista․ai routes your prompts, it needs to understand your models and routing rules. But expecting users to spend hours learning its configuration schema is asking too much.
So I built an interactive, visual configuration editor.
It’s live now on the smista․ai website: smista.ai/blog/smista-config…
I have decided to post a better-structured analysis than yesterday's raging post about #Codeberg's update to their Terms of Service.
In my article, I go through why their update is de facto a ban on any LLM-generated content, and the reasons that make that a political statement, more than a reasonable choice to prevent spam.
Also, while their ban on cryptocurrency-related projects may sound reasonable, it can actually ban many other projects that just have an arguable connection to cryptocurrencies. Is a tool which manipulates transactions on an exchange, which also trades cryptos, a cryptocurrency project? Who knows, the ToS are extremely vague about it.
Find the full article on my blog:
blog.veeso.dev/blog/en/codeb…
#codeberg has apparently joined the no-AI movement.
Last week, they updated the ToS stating that "LLM-generated content is being restricted".
All of this is being justified with "these projects have an unclear copyright status". Clowns, I say.
A niche platform that is going to become even more dead than it already is.
For me, no-AI is just another form of extremism, so deleting my account is an easy go.
The first public alpha of smista․ai is here.
Today, we are releasing smista 0.1.0-alpha.1: the first version you can actually install and use.
It brings the work from the previous development updates into one end-to-end product:
- an interactive CLI and local router in a single binary.
- deterministic, human-readable routing policies.
- remote providers and local Ollama models.
- streamed execution.
- file and shell tool approvals.
- workspace-scoped sessions.
- routing previews and explainable model selection.
This is an alpha, and it should be treated as one. Interfaces will change, rough edges are expected, and it has barely been tested outside our own workflows.
But it is ready for people who want to try policy-driven model routing, break things and help shape what comes next.
Install it on macOS or Linux:
curl -sSLf smista.ai/install/install.sh | sh
Or for Windows:
irm smista.ai/install/install.ps… | iex
Read the announcement and get started: smista.ai/blog/smista-ai-0-1…
Dev update #5 for smista․ai is out.
We are entering the final phase before releasing V1, which we expect to release in late August.
Over the last two weeks, we completed the client layer and built most of the interactive CLI.
The new Rust client provides a typed interface for the entire router API, with three interchangeable HTTP backends:
- reqwest for Tokio applications;
- ureq for applications without an async runtime;
- isahc for async applications that do not use Tokio.
The Rust and TypeScript SDKs now support sessions, routing previews, streamed execution, traces, usage and provider catalogues using the same shared protocol.
Meanwhile, the smista CLI is finally up and running.
It can configure and automatically start the local router, securely store credentials, create end-to-end encrypted sessions and render streamed model output through an interactive ratatui interface.
It already supports tool approvals, interruptions, workspace-scoped session resume, file references and commands such as /model, /providers, /skills, /preview and /resume.
We expect to start shipping alpha releases of smista․ai at the beginning of August, if anyone wants to give it a try.
Read Dev Update #5: smista.ai/blog/dev-update-5-…
Dev update #4 for smista․ai is out.
This milestone focused on implementing the router, the project's most important component.
The core principle guiding its implementation is simple: Routing is deterministic and never depends on an LLM.
So, instead of asking an AI to resolve the route for a task, the router follows these rules:
1. classifies the task
2. match it against user's policy
3. select an elibigle model
4. apply privacy constraints
5. assemble the right context
6. return an explainable trace
But how do we match routing rules? We have declared 4 principles:
If a sensitive file requires a local model, that constraint wins.
If a model lacks the required capability, it is skipped.
If a fallback is needed, the router walks the chain.
If no valid route exists, it fails instead of guessing.
Next: client SDKs, TypeScript support, and then the actual CLI experience.
Read the full dev update: smista.ai/blog/dev-update-4-…
"Brave Origin is paying for fewer features" or "Brave is making you pay for a problem they've created".
These are the slogans I keep seeing around #Brave Origin.
While I get the reaction, I think there is a bigger problem here: browsers do not live on good intentions.
A browser can be free for the user, but it is never free to build and maintain. If users do not pay directly, the business model has to exist somewhere else: VPN upsells, AI assistants, wallets, sponsored shortcuts, search deals, ads, or whatever comes next.
Brave Origin is weird because it makes the trade-off explicit: you are not paying more, but to get back the user-first experience that a browser should offer.
I paid for Brave Origin, and I'm fine with it.
Read the full article: blog.veeso.dev/blog/en/i-pai…
I wrote an article on the Smista AI blog regarding how we used Rig to build a provider-agnostic #LLM layer in Rust.
To implement Smista, we need to provide a common gateway to interact with models from different providers, such as Anthropic, OpenAI, and Gemini.
Luckily for us, Rig already comes in to help with the trait `CompletionClient`, which already gives you the possibility to build generic agents wrapping this client.
From there, we were able to build our own Agent wrapper, add internal tools, and implement user and session memory storage.
If you're interested, you can read our full walkthrough in the article on the smista AI blog: smista.ai/blog/how-we-built-…
Dev Update #2 for smista․ai is out.
This dev update follows our second milestone, which was about building smista-storage, the crate that gives user sessions a proper home.
An #AI session is not just a chat history: it is a graph of messages, routing decisions, tool calls, approvals, plans, diffs, and much more.
That made the choice of database more interesting than usual.
We have to be able to run locally, by embedding the engine, without asking users to spin up local services.
But we also have to be ready for a future SaaS version in which the database is deployed on a dedicated cluster.
That's why we opted for SurrealDB: embedded inside the #Rust router, runs in memory for unit tests, and standalone for SaaS architectures.
Once again, focusing on our core principle: Local-first, but not local-only.
Read the full update: smista.ai/blog/dev-update-2-…
Yesterday, #Ladybird announced they will no longer accept public pull requests.
This has sparked debate about how AI is affecting (and afflicting) the open-source software community.
Was that the only viable option?
And what does this choice mean for the community around open-source software?
My two cents on my blog: blog.veeso.dev/blog/en/ladyb…
#opensource #ai #aislop
People and companies give #AI agents access to our APIs, our inboxes, our data, and then basically trust them with everything they do.
With the guys at Firma-AI we've been building OpenFirma: you write Cedar policies for what your agent is allowed to do, and every outbound call gets checked against them before it leaves. Deterministically, not "the model promised".
Rust, open source, almost ready for release. Check it out at github.com/firma-ai/openfirm…
#rustlang #ai #aiagents #infosec #opensource
Today I read that #Uber reportedly capped employee spending on agentic coding tools at $1,500 per month, per tool.
And honestly, this feels like the beginning of a much bigger problem.
Companies want developers to use AI.
Developers are using AI.
But then the bill arrives.
The usual reaction is to add spending caps.
That may control the damage, but it does not improve the workflow.
It does not help developers choose the right model.
It does not prevent expensive models from being used for simple tasks.
It does not keep sensitive code local.
It just says: "stop here".
I think the better answer is routing.
Planning can go to a stronger reasoning model.
Simple edits can be handled by a faster coding model.
Security-sensitive code can stay local.
Documentation can use a cheaper model.
Company policies can be versioned instead of improvised.
That is what smista #ai is about: a local-first routing layer for AI developer workflows.
I explain this better in the new article on the Smista AI blog:
smista.ai/blog/your-companys…
#llm #ai #opensource
Dev Update #1 is out.
Only 10 days after the first line of code, smista #ai completed its first milestone.
The core library now defines the shared types used by the CLI and router, including the policy model, routing rules, intent classification, config validation, and SDK foundations.
This milestone is about one principle:
Model routing should be deterministic.
Not hidden behind another LLM call.
Not guessed every time.
Not dependent on whether the model "understood" the task correctly.
Routing should be explicit configuration: readable, reviewable, reproducible, and safe.
That is what smista #ai is building.
Read the full update:
smista.ai/blog/dev-update-1-…
#ai #opensource #rust #devupdate #llm
Your boarding pass should be boring.
Yet some airlines still make you choose between downloading their app and printing a paper ticket, instead of simply adding the ticket to Apple Wallet or Google Wallet.
That’s not just bad #UX. It’s an upselling machine.
I wrote about it:
blog.veeso.dev/blog/en/why-a…
#darkpatterns #airtravel #travel
I spent the last weekend writing almost 100 pages of specifications for a project that has been on my mind for the past month.
As #LLMs become more expensive, developers need to be more intentional about which model they use for each task.
Choosing the right model is not only about saving tokens. It is also about keeping workflows fast, avoiding unnecessary overthinking, and making local models usable without giving up the developer experience we are used to.
That is why I’m building smista #ai.
smista #ai is a local-first router and CLI for AI developer workflows.
Instead of manually choosing the model, provider, and effort level every time, you define deterministic policies once and then dispatch the job.
Planning can go to a stronger reasoning model.
Simple edits can be handled by a faster or cheaper model.
Sensitive tasks can stay local.
Documentation can use a different provider entirely.
The goal is not to hide model selection behind magic.
The goal is to make it explicit, configurable, traceable, and boring.
smista.ai/blog/i-dont-want-t…
#rust #rustlang #opensource #ai #llm
veeso retweeted
Bitcoin was supposedly invented to be a decentralized, third-party payment system designed to evade government control.
But if you look at who’s speaking at the Bitcoin conference, you can quickly see how the community has been hijacked by those same nefarious players.
The speakers include the FBI Director, the Acting AG, the SEC Chair, and the CFTC Chair. The event has had nothing but politicians, govt agents, bankers, and suits running the show.
Oh, the irony.



