{"id":30358144,"url":"https://github.com/source-c/usm","last_synced_at":"2026-02-02T23:32:53.252Z","repository":{"id":310389846,"uuid":"1039647050","full_name":"source-c/usm","owner":"source-c","description":"Universal Secrets Manager (hopefully - cross-platform)","archived":false,"fork":false,"pushed_at":"2025-09-13T16:57:21.000Z","size":242,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-26T07:36:46.370Z","etag":null,"topics":["age","fyne-app","golang-application","password-manager","privacy-enhancing-technologies"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/source-c.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-17T17:25:09.000Z","updated_at":"2025-08-25T20:16:53.000Z","dependencies_parsed_at":"2025-08-21T15:16:47.952Z","dependency_job_id":null,"html_url":"https://github.com/source-c/usm","commit_stats":null,"previous_names":["source-c/usm"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/source-c/usm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-c%2Fusm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-c%2Fusm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-c%2Fusm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-c%2Fusm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/source-c","download_url":"https://codeload.github.com/source-c/usm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-c%2Fusm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29023470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T22:20:39.141Z","status":"ssl_error","status_checked_at":"2026-02-02T22:20:37.621Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["age","fyne-app","golang-application","password-manager","privacy-enhancing-technologies"],"created_at":"2025-08-19T09:21:49.360Z","updated_at":"2026-02-02T23:32:53.245Z","avatar_url":"https://github.com/source-c.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg alt=\"usm\" src=\"logo/usm.png\" height=\"128\" /\u003e\n\u003c/div\u003e\n\n# USM - Simple, modern and privacy-focused Open Source secrets manager\n\nUSM is a secrets manager designed to offer a secure and user-friendly solution for managing your digital data across multiple platforms, featuring modern encryption, making it an ideal tool for both personal and professional use.\n\nIt is written in Go and uses [Fyne](https://github.com/fyne-io/fyne) as UI toolkit and [age](https://github.com/FiloSottile/age) as encryption library.\n\n## Warning\n\n**This software is work in progress, and didn't went through a full security audit.**\n\n**Do not expect it to be bug free and do not rely on it for any type of security.**\n\n## Main features\n\n* Cross platform application (linux, macOS, Windows, BSD ...) with a single codebase\n* Desktop, Mobile and CLI application with a single binary\n* Minimal direct dependencies\n* Agent to handle SSH keys and CLI sessions\n* Open source: code can be audited\n* Audit passwords against data breaches\n* TOTP support\n* Password import/export\n\n### Later goals\n\n* Syncronization across instances\n* Web application (however, this is highly debatable)\n* Passwords management and generation enhancements\n\n## Installation\n\n### Development version\n\nTo try the development version or help with testing:\n\n```\ngit clone https://github.com/source-c/usm.git usm-go\ncd usm-go\nmake help\nmake clean \u0026\u0026 make generate-mocks \u0026\u0026 make check \u0026\u0026 make build\nmake generate-integrations\n\n```\n\n## Documentation\n\n- [Configuration Management](docs/configuration.md) - Versioned configuration system using Viracochan\n- [Desktop Integrations](docs/integrations.md) - Desktop integration file generation for Linux and macOS\n\n## How it works - cryptography details\n\n### Vault initialization\n\nOne or more vaults can be initialized to store secrets and identities.\n\nWhen the vault is initialized user will be prompt for a vault name and password.\nAn [age](https://github.com/FiloSottile/age) key is generated and it is encrypted using an age Scrypt recipient with the provided password and saved on disk (key.age)\nThe X25519 identity and its recipient from the key file are used to decrypt and encrypt the vault data.\nEach item is stored separately on disk so that the content can be decrypted manually using the age tool, if needed.\nAll the items' metadata are encrypted and stored into the vault.age file so that no information is in clear text.\n\n### Random password\n\nRandom password are derived reading byte-by-byte the block of randomness from a [HKDF](https://pkg.go.dev/golang.org/x/crypto/hkdf) cryptographic key derivation function that uses the age key as secret. Printable characters that match the desired password rule (uppercase, lowercase, symbols and digits) are then included in the generated password.\n\n### Custom password\n\nWhere a generated password is not applicable a custom password can be specified. \n\n### Vault structure\n\nVault internally is organized hierarchically like:\n```\n- vault\n    ├── login\n    |    └── www.example.com\n    |    └── my.site.com\n    ├── password\n    |    └── mypassword\n    └── note\n         └── mysecretnote\n```\n\nwhere login, password and note are the USM items, see the dedicated section for details.\n\n### Items\n\nItems are special templates aim to help the identity management.\n\nCurrently, the following items are available:\n\n- login\n- note\n- password\n- ssh_key\n\n## Threat model\n\nThe threat model of USM assumes _there are no attackers on your local machine_.\n\n## Contribute\n\nContributions are welcome! Please feel free to submit a Pull Request. \n\n## Credits\n\n### Libraries and Tools\n - [age](https://github.com/FiloSottile/age) for the encryption library\n - [Fyne](https://github.com/fyne-io/fyne) for the UI toolkit\n - [Tabler icons](https://tabler.io/icons) for the icons\n\n### Inspiration\nThanks to these Open Source password managers that inspired the USM project:\n \n- [gopass](https://github.com/gopasspw/gopass)\n- [lesspass](https://github.com/lesspass/lesspass)\n- [pass](https://www.passwordstore.org/)\n- [passage](https://github.com/FiloSottile/passage)\n- [passgo](https://github.com/ejcx/passgo)\n\nThis project was originally heavily inspired by [Paw](https://github.com/lucor/paw) by Luca Corbo, but has since evolved into USM with a distinct architecture, UX and branding.\n\n\n## License\n\nMIT License only - meaning you are only the one who decides what to do next. There is no intention to make this project anyhow commercial.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsource-c%2Fusm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsource-c%2Fusm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsource-c%2Fusm/lists"}