how does this compare to vaultwarden + bitwarden? my only concern there is that VW can throw self-host support out the door whenever they like. not that they'd have a reason to
vaultwarden + bitwarden is way more mature right now, but the main difference is that sesame is local-first by design. Vaultwarden also depends on staying compatible with bitwarden's clients/api, while this owns the whole stack
KeePassXC is definitely much more mature right now. I mean, Sesame is similar in being local-first and not requiring a cloud service, but I am aiming for a more modern consumer style experience. There is still a lot of work ahead to get it up to speed. I might also build more products around it eventually, so there’s a consistent ecosystem.
(and of course, it would be great to eventually surpass some of the existing projects :) )
subscription style paid program, of course. Starting at 1 dollar a month now, until they get market penetration, then they will jack up prices (for increased opex, ostensibly). The classic SaaS playbook.
Yes. Every lock entry point (manual, auto-lock timer, app shutdown) funnels through one function, so the behavior can't drift, that calls lock_for_lifecycle, which drops the unlocked session. Dropping UnlockedVault zeroizes the 32-byte vault key and the whole in-memory payload in place before deallocation: names, logins, notes, cards, SSH keys, TOTP material, history, trash. Parsed import rows are wiped on lock too, and a session epoch is bumped so any pending browser fill approval dies with the lock! (also to mention it does not cover swap and hibernation files) ((also to mention I couldn't link the lines to mentioned functions but if you want to take a look, look at these lines: src-tauri/src/vault/mod.rs:78 sesame-core/src/lib.rs:197 sesame-core/src/lib.rs:225 types.rs:2184 ))
This response feels very AI generated. Which does not bode well for my faith in this project if the maintainer doesn’t even know basic facts about how it works and has to ask his AI.
I like that this could be self hosted. I don't have anything against the big password managers (I use and pay for one), but they are a massive target for hackers for obvious reasons. If everyone could self host their own vault on a personal domain, the reward for hackers is much more difficult to get access to.
I don't really have anything against the big password managers either. I just don't love having to pay for a full year upfront with some of them. More than that though, a lot of them just don't quite fit what I want, or they feel a bit dated to use, like KeePassXC. That's a big part of why I started building Sesame. (and hoping to expand later on to have a more pleasurable ecosystem)
Yeah I can see what you mean, but it wasn't really intentional. I mainly wanted to avoid the usual black/blue security-product look. I will probably keep the general direction but give it more of its own identity over time. Thank you for sharing your opinion!
It's good that vibecoded software look vibecoded, because I then immediately know not to trust that it works, not to trust that it's secure, and not to trust that the maintainer will give a shit about it in six months.
I never thought about wanting an HN comment as a wearable shirt before, but this ones one I would buy. But seriously, I love Claude and building all sorts of projects, but something as crucial as a password manager is a little bit too risky.
It's also half-coded in Javscript, with a grand total of 881 unique dependencies (271 npm + 614 Rust; derived from 38 directly declared dependencies). What could possibly go wrong?!
I still don’t get why password managers builders think it’s a great idea to store MFA token together with the password, totally defeating the purpose of MFA in the first place.
Not really. MFA still protects against the much more common case where the password itself is compromised, either through a breach, reuse, phishing, interception, bad storage, etc. An MFA code is short-lived and can’t simply be reused later, unlike a password.
Keeping the password and MFA secret in the same password manager reduces separation (if someone fully compromises your vault, they will gain access to both factors). But that doesn’t make MFA pointless; it just means it doesn’t protect you against that particular failure mode.
And if someone has full access to your password manager, you already have a much bigger problem.
As a second factor of authentication, a one-time passcode is supposed to be “something you have,” which is still satisfied when stored in a password manager. It no longer serves as a preventative in the event your password manager is compromised, but it’s still fine if any individual password is.
By and large, I see it as protection for the service provider, not for the me - they prevent the service provider from having to deal with people using weak passwords or re-using passwords that get leaked.
By-and-large, given the option, I wouldn't enable MFA - I appropriately store my strong, unique passwords, and am satisfied with that level of security.
Having MFA forced on my is purely a convenience downgrade without any real security upgrade, and having my password manager automatically fill MFA tokens minimizes that convenience downgrade.
I loosely monitor new password managers that appear with surprising regularity on F-Droid. Most have security issues that can be trivially found. It's conceptually simple software (running strings through a function before writing it to disk): nice for learning a new language, but should everyone's practice implementation seriously land in stores? So I'm skeptical of any new ones appearing from scratch, praising all their features and slick UI, with no mention of what was wrong with the incredibly diverse set of existing password manager projects. A study I read a few months ago showed that old code has fewer bugs than new code, which seems intuitive but it's nice to have actual data on it as well
Why a whole new project that needs to re-learn the gotchas that the predecessors ran into? Could any grievances have been pull requests or, worst case, a fork?
> A study I read a few months ago showed that old code has fewer bugs than new code, which seems intuitive but it's nice to have actual data on it as well
Which study? Old software has bugs that live for decades, even security bugs. I don't have a study to cite, just open bug trackers and CVE lists.
So you decrypt -any- password on a system with malware, and malware gets -all- the passwords. Makes life super easy for an attacker.
All they would need to do is install a wrapper for sesame that waits for the next database unlock and exfiltrates all passwords in plain text to a pastebin somewhere.
To prevent this, you need to encrypt each password to a key held in a yubikey, nitrokey, or similar with a touch policy. Now as an attacker if I want to get the users whole database of 100 passwords I must trick them to tapping a blinking smartcard or touchid 100 times. Presumably the user would notice something is wrong, and stop. Damage control.
This is how I have been doing password management for over a decade with password store, the standard unix password manager. That tiny shell script is the -minimum- security any password manager must have.
I get that most major password managers like 1password and lastpass also get this wrong. I submit with a straight face that they have never let any capable security engineers near their products. They have a negligent design end to end and must not be replicated.
Isn't this a fundamental issue with all popular password managers? Your setup where each decrypt requires a physical action is superior of course (even if an attacker is still likely to get 2-3 of the most important secrets before you start to investigate why a login isn't working), I just mean that most people don't have this and it's not a particular flaw with OP's implementation right?
It is a negligent and blatant design flaw in all popular implementations, yes. Mooltipass and Password Store are the only two password managers to do the bare minimum. That is ridiculous.
Anyone who corrects this, with a good UX solution, will win the password manager wars. It is so so so easy to do, so it is unthinkable only the CLI password manager written in bash bothers to do it.
Ask an LLM to implement it for you if you must, but no one has any excuse to skip the most basic security function of a password manager: do anything at all to protect it from malware.
It's hard to give a big enough :rolleyes: for this nihilistic bullshit being spouted in 2026. In fact I'm going to go further: I accuse you lrvick of active maliciousness and trying to aid illicit access and discourage people from improving their security, because you have no excuse not to know better.
>All they would need to do is install a wrapper for sesame that waits for the next database unlock and exfiltrates all passwords in plain text to a pastebin somewhere.
"""All""" they need is to get root? Most people access all key stuff on their own devices, and for the vast ultra super majority of the population and vital sites if their personal trusted device is rooted it's over regardless. Your "Now as an attacker if I want to get the users whole database of 100 passwords I must trick them to tapping a blinking smartcard or touchid 100 times" is total fucking make believe, completely ignoring normal things like RECOVERY FLOWS. If you have root on someone's computer and phone you have access to their email and probably messaging as well, and that will suffice to get into nearly everything including the majority of financial institutions (which even now have massive ones that don't even support HSMs at all, let alone leave no recovery route! looking at you Charles Schwab, with total client assets in excess of $12.5 trillion at the start of this year [0]). There isn't any need for "100 times" because most people don't have 100 different critical accounts, rather single digits or even just one actual one that has things like money or comms.
>This is how I have been doing password management for over a decade with password store, the standard unix password manager. That tiny shell script is the -minimum- security any password manager must have.
Literally laughing out loud here. If it's not easy enough for my friends in their 70s to use and like it's WORTHLESS to most security. Including on some level mine or yours, because security has key social/network effects beyond just individuals, stolen money, information, and access is used to fuel further security threats. Job #1 is to make something people like and works with most of what already exists. Otherwise it's yet another case of "ROTATE PASSWORDS EVERY 2 MONTHS NO USE X NUMBERS OH ALSO Y SPECIAL CHARACTERS NO NOT LIKE THAT" which results in everyone just leaving stuff on sticky notes on their screens and doing the bare minimum to fool the system and using the same thing or minor variants everywhere. Theorycrafted garbage made for robots not humans.
>I submit with a straight face that they have never let any capable security engineers near their products. They have a negligent design end to end and must not be replicated.
I submit with a straight face you are either literally working for a hostile agency to spread disinformation or you have serious neurodivergence or you are seriously and dangerously bubbled with an (un)healthy splash of Dunning-Kruger mixed in.
Stick one of those in a dependency of a dependency of a dependency of a popular NPM package and you can get access to developer accounts at every sector of the tech industry.
Super easy to avoid with minimal change to user experience, and yet no one did because "no one else does".
Except for Mooltipass and Password Store, which unfortunately no one has heard of. It is the popular options with billions of dollars not doing the basics the niche open source ones do that is so unforgivable.
I just wish to not see others repeating those mistakes and putting users at increased risk for no reason. I know someone personally who had their savings account wiped out because malware dumped their lastpass database. A malicious browser plugin to sniff the master password is all it takes without a hardware anchor.
> That tiny shell script is the -minimum- security any password manager must have.
So any device without touchid or a yubikey can't use a password manager without typing out your full master password every time you want to access any password?
Every modern device under the sun ships with a hardware security module of some kind which could, if nothing else, rate limit decryptions and ensure decryptions can only happen on that machine. There are so so many hardware anchors free for the taking.
The same hardware Microsoft, Google, and Apple use to verify you are running a "genuine" OS these days can also do general purpose encryption and decryption with rate limits and touch policies. Pick literally any of them. TPM, Passkeys, PIV, touchid, yubikeys, nitrokeys, the keycard to your last hotel room being touched on the hidden NFC reader most people do not know about under Dell touchpads. Use whichever one is the least shitty but not having a hardware anchor in a password manager is shipping a car without airbags.
Apples SE doesn’t let you load a key, so you have to reencrypt your secrets for every Apple device you want them on… requiring hundreds of touches. The UX just sucks, which is why it’s not a thing.
Sure, what does "the Secure Enclave or TPM could theoretically do this" do for me, if I've got a a trio of desktop PCs running macOS/Linux/Windows with no Touch ID between any of them and I want to keep my passwords synced and reasonably accessible?
The most user friendly way for someone with only one device and no external trusted screens is with the help of a recovery enclave all your secrets are encrypted to.
Whenever you add a new secret, you have it encrypt a copy to ideally a smartcard on your keychain and as a hail mary to each of a quorum of of keys held by secure enclaves that run an open source remotely attestable VM using TDX or SEV-SNP for provably encrypted memory, proof it is not logging, etc. You can also shamir-split encrypt to m-of-n geodistributed key shares stored offline as a double hail mary. All of this would be automatic and transparent to the user.
When you add a new device you must approve from an existing device.
That cryptographic approval, ideally a passkey tap, can start a process to bulk decrypt passwords and re-encrypt them to the TPM key in the new device in a hosted remotely attestable secure enclave the device verifies. The user can be given a chance to cancel this transfer within a reasonable period of time like 48 hours. This extra time could be bypassed if a user has a second device attached to their account. A user could also release one credential at a time manually and explicitly on both devices following the usual rate limit rules etc, or bypass the limit if both devices can be directly connected, or use an offline recovery yubikey or last resort offline bootable recovery usb for expedited recovery as well, etc. Good to have multiple fallback recovery methods that tolerate at least one machine being compromised at all times.
This is just one example scheme. There are many many ways to solve this in a way users are protected without them having to learn to do anything more complicated than account recovery on any web service ever.
I really hope someone rips this off and runs with it. My team and I have open sourced everything required, as have many other teams.
ive got my own pwd file using a short shell script in bashrc that uses nano, gpg and /dev/shm to keep things in memory (hopefully). works great, is minimalist and there are no hidden surprises.
ramon156 | 9 hours ago
[OP] d0mkaaa | 9 hours ago
alacritas0 | 7 hours ago
gregable | 8 hours ago
[OP] d0mkaaa | 8 hours ago
(and of course, it would be great to eventually surpass some of the existing projects :) )
gonzalohm | 6 hours ago
NewsaHackO | 6 hours ago
gregglain | 27 minutes ago
konaraddi | 8 hours ago
[OP] d0mkaaa | 7 hours ago
VladVladikoff | an hour ago
arlattimore | 7 hours ago
[OP] d0mkaaa | 7 hours ago
NewsaHackO | 6 hours ago
For now. I note that all of the repos that are attached to the project have a license except sesame-server, which I do not think is an accident.
cyberax | 7 hours ago
[OP] d0mkaaa | 7 hours ago
swyx | 6 hours ago
OutOfHere | 4 hours ago
majorchord | 7 hours ago
[OP] d0mkaaa | 7 hours ago
thehamkercat | 7 hours ago
I wouldn't trust any password manager or critical applications like this written after 2024
bitwarden/KeePassXC are already more than enough
Hamuko | 7 hours ago
vladkens | 7 hours ago
oscarcp | 7 hours ago
thehamkercat | 7 hours ago
giancarlostoro | 6 hours ago
d3Xt3r | 4 hours ago
danielmartins | 7 hours ago
epihelix | 6 hours ago
(It still protects against a password leak, though, so doesn't entirely defeat the purpose of MFA.)
mirzap | 6 hours ago
Keeping the password and MFA secret in the same password manager reduces separation (if someone fully compromises your vault, they will gain access to both factors). But that doesn’t make MFA pointless; it just means it doesn’t protect you against that particular failure mode.
And if someone has full access to your password manager, you already have a much bigger problem.
jscd | 5 hours ago
Marsymars | 5 hours ago
By and large, I see it as protection for the service provider, not for the me - they prevent the service provider from having to deal with people using weak passwords or re-using passwords that get leaked.
By-and-large, given the option, I wouldn't enable MFA - I appropriately store my strong, unique passwords, and am satisfied with that level of security.
Having MFA forced on my is purely a convenience downgrade without any real security upgrade, and having my password manager automatically fill MFA tokens minimizes that convenience downgrade.
Aachen | 6 hours ago
Why a whole new project that needs to re-learn the gotchas that the predecessors ran into? Could any grievances have been pull requests or, worst case, a fork?
willangelo | 5 hours ago
cure_42 | 26 minutes ago
8cvor6j844qw_d6 | 3 hours ago
jason_oster | 24 minutes ago
Which study? Old software has bugs that live for decades, even security bugs. I don't have a study to cite, just open bug trackers and CVE lists.
lrvick | 5 hours ago
All they would need to do is install a wrapper for sesame that waits for the next database unlock and exfiltrates all passwords in plain text to a pastebin somewhere.
To prevent this, you need to encrypt each password to a key held in a yubikey, nitrokey, or similar with a touch policy. Now as an attacker if I want to get the users whole database of 100 passwords I must trick them to tapping a blinking smartcard or touchid 100 times. Presumably the user would notice something is wrong, and stop. Damage control.
This is how I have been doing password management for over a decade with password store, the standard unix password manager. That tiny shell script is the -minimum- security any password manager must have.
I get that most major password managers like 1password and lastpass also get this wrong. I submit with a straight face that they have never let any capable security engineers near their products. They have a negligent design end to end and must not be replicated.
Aachen | 5 hours ago
lrvick | 4 hours ago
Anyone who corrects this, with a good UX solution, will win the password manager wars. It is so so so easy to do, so it is unthinkable only the CLI password manager written in bash bothers to do it.
Ask an LLM to implement it for you if you must, but no one has any excuse to skip the most basic security function of a password manager: do anything at all to protect it from malware.
The bar for password managers is in hell.
antonvs | 4 hours ago
In some technical sense, not necessarily in popularity.
what | 2 hours ago
xoa | 5 hours ago
>All they would need to do is install a wrapper for sesame that waits for the next database unlock and exfiltrates all passwords in plain text to a pastebin somewhere.
"""All""" they need is to get root? Most people access all key stuff on their own devices, and for the vast ultra super majority of the population and vital sites if their personal trusted device is rooted it's over regardless. Your "Now as an attacker if I want to get the users whole database of 100 passwords I must trick them to tapping a blinking smartcard or touchid 100 times" is total fucking make believe, completely ignoring normal things like RECOVERY FLOWS. If you have root on someone's computer and phone you have access to their email and probably messaging as well, and that will suffice to get into nearly everything including the majority of financial institutions (which even now have massive ones that don't even support HSMs at all, let alone leave no recovery route! looking at you Charles Schwab, with total client assets in excess of $12.5 trillion at the start of this year [0]). There isn't any need for "100 times" because most people don't have 100 different critical accounts, rather single digits or even just one actual one that has things like money or comms.
>This is how I have been doing password management for over a decade with password store, the standard unix password manager. That tiny shell script is the -minimum- security any password manager must have.
Literally laughing out loud here. If it's not easy enough for my friends in their 70s to use and like it's WORTHLESS to most security. Including on some level mine or yours, because security has key social/network effects beyond just individuals, stolen money, information, and access is used to fuel further security threats. Job #1 is to make something people like and works with most of what already exists. Otherwise it's yet another case of "ROTATE PASSWORDS EVERY 2 MONTHS NO USE X NUMBERS OH ALSO Y SPECIAL CHARACTERS NO NOT LIKE THAT" which results in everyone just leaving stuff on sticky notes on their screens and doing the bare minimum to fool the system and using the same thing or minor variants everywhere. Theorycrafted garbage made for robots not humans.
>I submit with a straight face that they have never let any capable security engineers near their products. They have a negligent design end to end and must not be replicated.
I submit with a straight face you are either literally working for a hostile agency to spread disinformation or you have serious neurodivergence or you are seriously and dangerously bubbled with an (un)healthy splash of Dunning-Kruger mixed in.
----
0: https://pressroom.aboutschwab.com/press-releases/press-relea...
what | 2 hours ago
lrvick | 2 hours ago
Exfiltrate all plaintext credentials from 1password:
op list items \
Exfiltrate all plaintext credentials from lastpass:lpass ls \
Stick one of those in a dependency of a dependency of a dependency of a popular NPM package and you can get access to developer accounts at every sector of the tech industry.Super easy to avoid with minimal change to user experience, and yet no one did because "no one else does".
Except for Mooltipass and Password Store, which unfortunately no one has heard of. It is the popular options with billions of dollars not doing the basics the niche open source ones do that is so unforgivable.
I just wish to not see others repeating those mistakes and putting users at increased risk for no reason. I know someone personally who had their savings account wiped out because malware dumped their lastpass database. A malicious browser plugin to sniff the master password is all it takes without a hardware anchor.
Marsymars | 5 hours ago
So any device without touchid or a yubikey can't use a password manager without typing out your full master password every time you want to access any password?
lrvick | 4 hours ago
The same hardware Microsoft, Google, and Apple use to verify you are running a "genuine" OS these days can also do general purpose encryption and decryption with rate limits and touch policies. Pick literally any of them. TPM, Passkeys, PIV, touchid, yubikeys, nitrokeys, the keycard to your last hotel room being touched on the hidden NFC reader most people do not know about under Dell touchpads. Use whichever one is the least shitty but not having a hardware anchor in a password manager is shipping a car without airbags.
what | 2 hours ago
Marsymars | an hour ago
cure_42 | 20 minutes ago
lrvick | 17 minutes ago
Whenever you add a new secret, you have it encrypt a copy to ideally a smartcard on your keychain and as a hail mary to each of a quorum of of keys held by secure enclaves that run an open source remotely attestable VM using TDX or SEV-SNP for provably encrypted memory, proof it is not logging, etc. You can also shamir-split encrypt to m-of-n geodistributed key shares stored offline as a double hail mary. All of this would be automatic and transparent to the user.
When you add a new device you must approve from an existing device.
That cryptographic approval, ideally a passkey tap, can start a process to bulk decrypt passwords and re-encrypt them to the TPM key in the new device in a hosted remotely attestable secure enclave the device verifies. The user can be given a chance to cancel this transfer within a reasonable period of time like 48 hours. This extra time could be bypassed if a user has a second device attached to their account. A user could also release one credential at a time manually and explicitly on both devices following the usual rate limit rules etc, or bypass the limit if both devices can be directly connected, or use an offline recovery yubikey or last resort offline bootable recovery usb for expedited recovery as well, etc. Good to have multiple fallback recovery methods that tolerate at least one machine being compromised at all times.
This is just one example scheme. There are many many ways to solve this in a way users are protected without them having to learn to do anything more complicated than account recovery on any web service ever.
I really hope someone rips this off and runs with it. My team and I have open sourced everything required, as have many other teams.
demibabs | 5 hours ago
globalnode | 4 hours ago
2legit2quit | 2 hours ago
0 - https://www.pwsafe.org/relatedprojects.shtml
senectus1 | an hour ago