Hacker News

tapanjk
Vim 9.2 vim.org

srik4 hours ago

> For over 30 years, Vim has been "Charityware," supporting children in Kibaale, Uganda. Following the passing of Bram Moolenaar, the ICCF Holland foundation was dissolved […] and its remaining funds were transferred to ensure continued support for the Kibaale project. […] Vim remains Charityware. We encourage users to continue supporting the needy children in Uganda through this new transition.

I settled on vim for its technical merits but Bram using his goodwill to fund a charity like this for so long always made me feel good about my choice.

jdsnape3 hours ago

I used to work for a large enterprise, and tried to get vim ‘approved’ for internal use. I remember this charityware clause caused our legal department to get tied up in all sorts of arguments about how we could be opening ourselves to liability if we used it without donating. It was my first lesson in navigating large company processes.

In the end I just kept quiet about the fact that it ships in all the Linux package repos.

(Just to be clear, I fully support what Bram did here)

cbsks2 hours ago

“Let’s spend thousands of dollars on lawyers to avoid donating to a good cause”. Large corporations can be so ridiculous.

joe_mamba2 hours ago

Big companies can be incredibly penny wise and pound foolish because their beancounters make them obsess over the wrong metrics. My current company has spent the last year cost cutting every single way to stay afloat and now you need a chain of approvals up the management ladder with detailed explanation for every paperclip you want purchase.

I can't prove it, but I am willing to bet my entire salary that the costs of all the new extra bureaucratic overhead introduced for small purchases, nullified or even exceeded all their savings, when the remaining engineers and managers paid six figures have to spend more of their time writing, reviewing and approving paperclip orders instead of you know, running the company, fulfilling customer demands and innovating.

I'm pretty new to this, but I have a feeling these are all the signs of a company it's worth jumping ship from ASAP as there's no chance of things improving back from this. Sure, AMD managed to turn the ship around with cost cutting, but our CEO is not Lisa Su, he's a boomer who cuts where the clueless $BIG_4 consultants tell him to cut, and big_4 doesn't care about innovation or the company being relevant in 10 years, they care about showing some immediate results/positive cash to justify their outrageous rates.

Buttons840an hour ago

And they're probably feeling the need to pinch because they are moving slow and falling out of relevance.

When you're being outcompeted and outmaneuvered it's important to slow down and make sure you save a few dollars wherever possible, apparently.

[deleted]an hour agocollapsed

nujabe2 hours ago

Curious why you tried to get it approved in the first place if it comes with Linux?

sobjornstad2 hours ago

I worked at a place like this and we had a software registry, where if you had installed something and it wasn't on the registry somebody would start sending you nasty emails. This kind of thing would happen all the time: maybe the Linux machines weren't in the scans, or anything that came with the OS was whitelisted.

But if you wanted to install it separately on a computer that didn't have it already, then you'd need to get it “approved.”

johnisgood22 minutes ago

Even if it is your own work computer?

bko3 hours ago

Do I understand it correctly, but people donating to Vim, presumably for the support of the software, have their donations passed along to a charity supporting children in Uganda?

debugnik31 minutes ago

It's not their fault if donors don't read what they're donating for. This reminds me of people feeling scammed after donating to Mozilla.

sodapopcan3 hours ago

Bram started giving 100% after getting hired full time by Google, I believe, which continued on. There is an update on the Vim homepage now about it stopping, though I find the wording a bit confusing... I think they are dissolving the charity but still sending donations to Uganda? I feel a bit dumb for not understanding it but you can read the update on https://www.vim.org/. Unfortunately they don't have target links for dates, it's the [2025-10-28] update.

mmoossan hour ago

The OP covers this question at the bottom; donations still go to the same people in Uganda, iiuc.

sodapopcanan hour ago

Oh right... doi. Thanks.

oscaracso2 hours ago

I wanted to understand it too, so I clicked on the donate button and was greeted by this message: 'All donations are directed toward a good cause: helping children in Uganda. This charity is personally recommended by Vim’s creator. Funds are used to support a children's center in southern Uganda, providing food, education, and health care to communities affected by AIDS.'

[deleted]3 hours agocollapsed

jasonhansel5 hours ago

I'm glad to see that Vim9 continues to make progress. The center of gravity may have shifted somewhat towards Neovim, but the Neovim ecosystem currently seems targeted towards people who want something more IDE-like.

One question is: will more plugin authors move to Vim9Script? It seems that Neovim users have generally moved towards Lua-based plugins, so there's less of a motivation to produce plugins that support both Neovim and Vim9.

rustyhancock5 hours ago

I'm not the target for your question (I distribute 0 plugins).

But Lua support in Neovim is the primary reason I moved over from Emacs. Elisp and Vim are both so heart sink for me.

That said I'd have preferred something other than Lua if I had the choice.

freedomben4 hours ago

> That said I'd have preferred something other than Lua if I had the choice.

Same. I know we as a community would never agree on what that language should be, but in my dreams it would have been ruby. Even javascript would have been better for me than Lua.

satvikpendem4 hours ago

Lua, especially with LuaJIT, is nearly as fast as C. I certainly don't want to have to run a slow language like Ruby or especially a full blown JS runtime like V8 just to run Vim, the entire point is speed and keyboard ergonomics, otherwise just use VSCode.

lloeki2 hours ago

Isn't LuaJIT kind of a dead end?

Also Ruby has been getting quite fast since YJIT (and now ZJIT):

https://railsatscale.com/2023-08-29-ruby-outperforms-c/

comexan hour ago

V8 is faster than LuaJIT. But sure, it has a large binary size.

freedomben4 hours ago

Quite a fair point! For intensive plugins and such, this would matter quite a bit.

user39393824 hours ago

Babashka! Super fast clojure/lisp.

zem4 hours ago

there's always fennel for a lispy layer over lua

elros4 hours ago

> Even javascript would have been better for me than Lua.

Why?

freedomben4 hours ago

Because I know javascript a lot more than I know Lua (and I suspect given js popularity, a lot of people are in the same boat). Yes Lua is easy to learn, but it's still different enough that there is friction. The differences also aren't just syntactically, it's also libraries/APIs, and more. I also don't have any need/use for Lua beyond neovim, so it's basically having to learn a language specifically for one tool. It's not ideal for me.

But the people who did the work wanted Lua, and I have no problem with that. That's their privilege as the people doing the work. I'm still free to fork it and make ruby or js or whatever (Elixir would be awesome!) first-class.

011000114 hours ago

I agree but also wonder if editor plugins fall squarely in the range of things an LLM could vibe-code for me?

There is a large class of problems now for which I consider the chosen programming language to be irrelevant. I don't vibe code my driver code/systems programming stuff, but my helper scripts, gdb extensions, etc are mostly written or maintained by an LLM now.

maleldil18 minutes ago

IME, Claude is quite good at generating Lua code for neovim. It takes some back and forth because there's no easy way for it to directly test what it's writing, but it works.

metrix3 hours ago

I'm right there with you, and to be honest Lua just works. I helped with Neovim when it started ~10 years ago, and didn't understand the big deal about implementing lua.. But now that it's here, I can't believe it wasn't forked and implemented sooner

jitl4 hours ago

i’ve written probably north of a million lines of production js, maybe around 100,000 lines of production ruby, and about 300 lines of production lua. lua is a fun language and i think a much better fit than JS for technical reasons (who has a js engine that is both fast and embeds well? nobody), but i am certainly more productive in those other languages where i have more experience.

lua array index starting at 1 gets me at least once whenever i sit down to write a library for my nvim or wezterm.

llimllib4 hours ago

> who has a js engine that is both fast and embeds well? nobody

Fabrice Bellard! https://github.com/bellard/mquickjs

(I agree with you, just wanted to note this super neat project)

jitl4 hours ago

quickjs/mquickjs are good at embedding but nowhere close to luajit in terms of speed. (i have some experience with quickjs https://github.com/justjake/quickjs-emscripten)

as an aside i’m curious how quickjs/mquickjs compares to mruby in speed and size. something to ponder

MarsIronPI4 hours ago

Doesn't Vim support extensions written in several languages? Or was that removed in Vim 9?

chrisbra804 hours ago

It still does, but those only work with a Vim built that has those interfaces compiled in.

Graziano_M4 hours ago

I wish they supported Janet

nine_k4 hours ago

Can you run Fennel in Neovim? It's a Lisp running on Lua. https://fennel-lang.org/

golly_ned3 hours ago

Yes.

sodapopcan3 hours ago

I love vim9script and write most of my plugins in it now unless I want something to work in the other vim as well, of course. Really happy to see it evolving and I'm particularly happy that tuple support has landed!

gfiorav3 hours ago

As a die-hard vim fan, I feel bitter-sour saying that I switched to nvim. Honestly, I think the vim maintainers should find a way to merge in nvim.

e-khadem2 hours ago

I think not adding new features frequently and keeping everything stable and working in the long-term is also meritorious. Vim is the same on my local machine, on my rpi, and on an Ubuntu 20.04 VM that I use for some proprietary software.

Also, I cannot think of an extension / new feature that makes sense as a part of Vim (if I want something more, I want a lot more. I don't want Vim to do a lot more, for the sake of simplicity and conformity, that's a job for vscode with Vim extension).

At the same time I wouldn't object to someone adding features to this program. But they have to try really hard to convince me to start relying on that feature (I wouldn't, because I would miss it on Ubuntu 20.04 and I will forget how I used to work without that feature).

I tried nvim a few years ago and honestly didn't find anything advantageous there. But since I had `:sh` in muscle memory and it was a bit (very?) different there I gave up on nvim.

andrewla12 minutes ago

I have also switched to nvim, but every release I consider moving back.

Honestly a lot of this is that I hate Lua. With so much of the infrastructure moving in that direction it's basically unavoidable. XDG support was honestly one of the things holding me back; I'm glad that this is finally fixed.

sodapopcan3 hours ago

I don't think that will ever happen. They have already diverged in key ways. I'm more than happy with vim9 and where it is going, personally.

sigzero2 hours ago

Has neovim settles on a UI yet?

mystifyingpoi2 hours ago

What do you mean? Neovim looks 100% exactly like Vim when you turn it on without any plugins. It's hard to distinguish even. It's the plugins that give it that nerdy look.

tuan2 hours ago

they probably mean GUI app like GVim and MacVim

3eb7988a16633 hours ago

NeoVim tossed significant amounts of legacy code (eg 8.3 filename support) and greatly improved out of the box default configuration. You cannot merge the two without upsetting one camp or the other. Vim wants to continue to be a stable platform that runs on 40 year old hardware. NeoVIM wanted to ditch the cruft that no longer makes applies.

actinium2264 hours ago

But where are the AI features?? Gonna get left behind!

Only joking of course, actually quite refreshing to see a new version announcement of something this major without any AI nonsense.

LexiMax2 hours ago

> But where are the AI features?? Gonna get left behind!

Obviously vim doesn't need AI, but one feature I really wish vim had was native support for multiple cursors.

It's the feature that lured me away to Sublime Text in the first place many years ago, and it's a pre-requisite for pretty much every editor I use these days, from VSCode to Zed.

There are plugins, but multicursor is such a powerful force-multiplier that I think a native implementation would benefit.

mystifyingpoi2 hours ago

The canonical answer to this request is as follows: if you need multi-cursor (or, worse, multi-cursor with mouse support) then you are doing something non-Vim way (aka: wrong way) and there is a better way to do it.

If you need multi-cursor to do manual search and replace in text, then don't, just do automatic search and replace, maybe scoped to a block. If you need multi-cursor for refactoring or renaming a variable across entire source file, then don't, use LSP plugin (or switch to Neovim) and do the proper refactoring action.

Sure, there are legit cases of using multi-cursor in Vim, but they are rare. So it's not worth to put it into Vim itself.

riffraff31 minutes ago

personally, I know I can use search and replace, but <ctrl-n>-n-n-c-replacement[0] is easier on my mind than the search&replace alternative

[0] I've been using vim-multiple-cursors for years, it's abandoned but still works ok most of the time.

ivanjermakov2 hours ago

There are plenty of ways to achieve workflows that can be done witg multiple cursors even in plain Vim: macros, :norm, visual blocks, :s, etc.

gjkliewer2 hours ago

Multi cursor is on the neovim roadmap https://neovim.io/roadmap/

stackbutterflowan hour ago

I'm curious to know what kind of editing you do that you need this so much?

WhyNotHugo2 hours ago

Funny, I used multiple cursor a lot back when I used Sublime Text, but stopped needing them when I switched to Vim.

sejje2 hours ago

How does it work?

michaelcampbell3 hours ago

Vim and its ilk have plenty of AI.

Actual Intelligence. It's connected to fingers/hands/arms/torso that is using it.

comexan hour ago

The announcement itself looks potentially AI-assisted, judging by the bulleted list style and redundant text under the "Charity: Transition to Kuwasha" section. But maybe some people just write that way.

penguin_boozean hour ago

Wait a couple of more months, and no-none will know to write any other way.

guerrilla4 hours ago

I agree and I know what you're saying, but I'm pretty curious: how are people using AI with vim? I've seen some scripts for ollama but what are most people doing?

flexagoon3 hours ago

At least for Neovim, there are many official or community-made AI autocomplete plugins, and a bunch of chat interfaces as well

era864 hours ago

tmux + vim + Claude Code

bicx4 hours ago

This. With so much of my work being done with Claude Code via terminal, I’ve used vim and tmux more than I have in the 20 years since I was first introduced.

linhns3 hours ago

How many people don’t know tmux in the industry is really beyond me.

tommy_axlean hour ago

With all the buzz about orchestrating in the age of CLI agents there doesn't seem to be much talk about vim + tmux with send-keys (a blessing). You can run as many windows and panes doing so many different things across multiple projects.

jimmaswell3 hours ago

What's the elevator pitch if I already know Screen and I can just open multiple windows of the terminal emulator?

mystifyingpoi2 hours ago

No pitch - just use screen, most people use tmux in exactly the same way - open a few splits and switch between them with keyboard shortcuts.

hibbelig3 hours ago

I switched from screen to tmux due to rumor about the screen code base. Maybe not a good reason. But I don’t regret it, tmux works well.

Just an honest opinion of someone who didn’t have skin in the game. Not sure if it helps.

Keyframe4 hours ago

same, although I'm using zellij instead of tmux. Copilot works well in vim too.

sorentwo3 hours ago

Nearly this, but using ghostty instead of tmux. You don’t get the remote connection aspect of tmux, but for splitting/zooming/preserving windows it is fantastic. The best part is you can configure natural shortcuts rather than using a leader for everything.

dotancohen2 hours ago

As a tmux user, sell me on ghostty. I hate the leader key, especially in VIM.

Carrok4 hours ago

The copilot plugin works well

guerrilla4 hours ago

That's good to know. I've never actually tried Copilot. I was going to try this week.

metrix3 hours ago

Totally worth it. I tied it to openrouter.ai so that I could use 'all the AI's' (TM)

Totally worth it

qsort4 hours ago

AI makes advanced IDE features less relevant (or, more precisely, much easier to ignore or work without.)

I still have PyCharm, especially for working with data which I do a lot it helps quite a bit, but by default I'm back to a very vanilla Vim setup. Others have mentioned tmux which is great and I'd use anyway especially over ssh, but even just terminal tabs for instances of agents are fine frankly.

drawnwren3 hours ago

Avante.nvim is quite active

user39393824 hours ago

I made a vim extension where you describe the edit/action you want in natural language, and my ollama model thats trained on books like Practical Vim returns the key sequence and you can press e to execute without leaving vim. So you get automation help but also learn the syntax.

yojat6614 hours ago

That's pretty nifty. Link please

dmd4 hours ago

:please exit vim now

aljgz3 hours ago

AISREIR

AI Should Rewrite Everything In Rust

[deleted]2 hours agocollapsed

riffraff26 minutes ago

this is a richer changeset than I would have expected, I'm glad to see that.

simoncrypta3 hours ago

After many years being interested, I finally invest a good amount of time learning vim properly. Thanks to AI, I got more time to learn in between request and it become painfully slow to use IDE or ask AI simple change. To me the agentic workflow make it even more valuable to learn vim since I can fix and iterate on small details way faster.

dkga5 hours ago

Delighted to see vim continuing.

k3vinw3 hours ago

> The MS-Windows GUI now supports native dark mode for the menu and title bars, along with improved fullscreen support and higher-quality toolbar icons.

Congratulations on the new release! Looking forward to applying these awesome improvements.

_0xdd2 hours ago

Couldn't have come at a better time for those who are affected by their IT departments removing access to Notepad++.

computerfriend5 hours ago

Strange that there's no v9.2 tag in https://github.com/vim/vim/tags.

chrisbra803 hours ago

Oopps, missed that. Now there is a v9.2.0 tag and a v9.2.0000 tag

c0balt4 hours ago

The relevant release commit is, https://github.com/vim/vim/commit/e7e21018fc0b60c153c8e668f6... (at time of writing, two hours ago).

It seems they didn't publish the tag yet though.

Bulbasaur20154 hours ago

> Vim now adheres to the XDG Base Directory Specification,

cool

jmclnx5 hours ago

Congratulations!

>Full support for the Wayland UI

I really hope they never deprecate X11 support :) I doubt they will, but if they do, it will leave the BSDs without a good alternative.

zenoprax5 hours ago

Unless I'm misunderstanding the problem, Wayland is available on FreeBSD.

https://docs.freebsd.org/en/books/handbook/wayland

giancarlostoro5 hours ago

Some people hate wayland.

pjmlp5 hours ago

Those people can contribute to Xorg server further development.

bee_rider4 hours ago

The thing that kicked off this thread was hope that vim will continue to support X11. No need for continued X development really.

pjmlp4 hours ago

On the contrary, because you will want to have those drivers when the time comes to reinstall the system with more modern hardware.

Without X Server support at the OS level for the new hardware, doesn't really matter if vim supports it on its source code.

AlecSchueler5 hours ago

But surely not every BSD user?

giancarlostoro5 hours ago

Not every BSD user, but the one you're responding to is most likely in that camp.

hleszek4 hours ago

Why would they do that? When I started learning VIM more than 20 years ago, one of the main reason was that it (or vi) was already present and installed in every possible Linux system.

einpoklum4 hours ago

I am a lay user or vim. I use it daily for editing text files and a bit of code, but I always found the plugins and the scripting language rather daunting. There are different, conflicting, plugin management systems; and of course there's the scripting language that's vim-specific, and the few times I tried to delve into this stuff, I quickly found myself in over my head.

So - on the occasion of VIm 9.2 coming out - do people have a recommendation for a gentle path to "leveling up" one's VIm skills and engagement?

mystifyingpoi2 hours ago

Yes, switch to Neovim. Seriously, no sarcasm. You can import your existing .vimrc at first, if you even care. I highly recommend kickstart or some other simple config scaffold.

svilen_dobrev3 hours ago

do you really need that?

the scripting language is.. okay, but u have to try doing something practical in it, to get a feeling.

see my vimrc, being updating it since ~2000

https://github.com/svilendobrev/svd_bin/blob/master/qini/_vi...

skydhash3 hours ago

There are the Practical Vim[0] and Modern Vim[1] by D. Neil

And the VimL Primer[2] by B. Klein

But Vim is a whole culture that starts with ed(1), the standard editor. You do edit based on line numbers and regex addressing and commands. Then there was ex(1) that added more features. vi(1) added a `visual` mode to ex(1), and some commands can now be done in relation to the position of the cursor. Vim is the improved version of vi(1), a lot more commands and a scripting language.

The plugin system is similar to everything that was unix at that time, relying on a variable like $PATH. Any path added to that variable (runtimepath for vim), should follow some patterns for subdirectories and the file will be loaded according to a certain logic. Plugin managers actually manage that variable and do a few things aside (isolating plugins, downloading from forges,...)

[0]: https://pragprog.com/titles/dnvim2/practical-vim-second-edit...

[1]: https://pragprog.com/titles/modvim/modern-vim/

[2]: https://www.oreilly.com/library/view/the-viml-primer/9781680...

sodapopcan3 hours ago

There is also Learn VimScript the Hard Way, which is of course a bit outdated, but it does help to know "legacy" vimscript. vim9script is very intuitive and easy to learn for anyone who knows any OO language from the past 30 years. The difficulty comes in learning the ins and outs of Vim itself (when it comes to scripting it, that is).

https://learnvimscriptthehardway.stevelosh.com/

svilen_dobrev3 hours ago

i have been using vim since v4 (1999?), but in the last year+ - maybe since v9? - there's some weird defect happening only once in a while:

While walking around a file with keyboard, sometimes a random line's indent is removed - that is, text goes left-flushed. AND it's not a tracked change that can be UNDOne - as if it never happened / always has-been-so. Have not been able to correlate this to any other thing. It happens like once a few days, very rarely it might happen twice within minutes. Sometimes i notice that, sometimes i don't and (luckily) python screams of broken indentation. If the file isn't deeply nested python.. good luck.

Has anyone "achieved" such a thing?

worldsavior4 hours ago

YES. Wayland support.

mcswell5 hours ago

Ignore my comment, testing whether I'm blocked

hackerbrother5 hours ago

Hey man, you’re not blocked. Read you loud and clear. Happy Valentine’s Day to you and yours.

mcswell5 hours ago

In case you're wondering: I'm not blocked in this thread, but I was blocked in a thread about ICE. I told them to thaw out.

rfrey4 hours ago

If the thread was deleted by a mod or flagged in the time between starting a comment and hitting "reply", you'd see a message that "you're not allowed to post a comment here" or similar language. Nothing to do with you, it's the state of the thread you're commenting on.

buzzerbetrayed4 hours ago

Take your tinfoil hat off

TristanDaCunha5 hours ago

Should stop and help with neovim

freedomben4 hours ago

This is the perennial argument that IMHO is based on a fallacy. If the vim people suddenly stopped working on vim, it doesn't mean all their effort would go to neovim. People work on what they want to work on in open source. Also the two projects have very different goals/philosophies. The code bases have also gotten pretty different in architecture because neovim did a monstrous refactor. It's open source working as intended that we have both.

bee_rider4 hours ago

I agree with you.

One little thought is, has there been much drama between the vim and neovim communities? (I guess community can be defined broadly enough that the answer to that question is always “yes,” but I haven’t seen much). They both seem completely happy to just do their own thing. I think the perennial argument just exits in the mind of some fans.

It is nice to see a pair of projects with so much potential for competition coexisting peacefully. Plenty of room on the internet I guess.

freedomben4 hours ago

There was a decent amount of drama in the early days, but at this point it seems like it's gotten pretty friendly.

benatkin5 hours ago

Could say the same thing about people working on neovim

latexr5 hours ago

Technically, Neovim started because the author wanted to add multi-threading to Vim but the patch was rejected. So they did try to contribuir to Vim first.

Not that I agree with your parent comment or anything (I don’t), I use Helix so don’t really have a dog in this fight, I think it’s fine for them all to coexist.

aniviacat2 hours ago

Do you know why it was rejected?

latexran hour ago

It’s been too long, I no longer recall specifics. Wikipedia links to the patch’s discussion on Google Groups, if you care to read it.

https://groups.google.com/g/vim_dev/c/65jjGqS1_VQ/m/fFiFrrIB...

Vim 8 did add support for asynchronous jobs, due to the pressure of Neovim fork.

https://lwn.net/Articles/713114/

logicprog5 hours ago

NeoVim has a fundamentally better architecture and healthier ecosystem.

benatkin5 hours ago

But they're separate highly maintained projects, and there will always be tradeoffs. It's like saying that Ubuntu is better than Debian, or that Fedora is better than RockyLinux.

aldanor5 hours ago

Honestly curious, what are the tradeoffs with vim9 / vimscript?

jitl4 hours ago

well the library ecosystem, developer tooling, and gradual typing support for lua is far ahead of what’s available for vimscript. in my experience lua is #2 behind javascript/typescript’s #1 when it comes to scripting language LSP stuff. both python and ruby suffer from a profusion of alternative type checkers and whatnot that cause pain and fragmentation when it comes to tooling.

it’s pretty great to have my vimconfig give red squiggle in editor if i’m doing it wrong before i save & reload.

but i’ve not followed vim9 script as its evolved perhaps there’s a good type checker for it at this point?

even before neovim, there were vim extensions written in lua so it feels gravity of lua code has been considerable for a long time.

to me vim9script feels like perl5/raku split - evolution too late to grow new users, a remnant for a niche that will fade to oblivion slowly over the next 10 years.

toxik3 hours ago

Oh man imagine if NeoVim had been TypeScript. I would've switched then.

jitl3 hours ago

well the lua setup has enough type checker going on that’s it’s really useful, besides language familiarity i honestly don’t miss much; there’s great docs and autocomplete for the lua stuff built in to the lazynvim distro.

skydhash3 hours ago

With vim9, just like C and perl, the focus is to write small programs. And you don't need a typechecker if your program is only a few hundreds lines. And locality of behavior is at most one screen tall. For scripting languages, I'd rather a good documentation system (vim, emacs,..) than having a full lsp client in the background.

[deleted]5 hours agocollapsed

hn-front (c) 2024 voximity
source