Skip to main content

funsecret

funsecret 是一个简单的本地密钥管理工具。

原 nltsecret 已迁回 funsecret;旧包和命令保留兼容入口。

适合存这些内容:

  • 账号密码
  • token / access key
  • 数据库连接信息
  • 其他不想写进代码里的敏感配置

它默认把数据保存在本机,按多级分类读取,例如 app prod mysql password。

安装

pip install funsecret

如果你要同步到 MySQL:

pip install "funsecret[mysql]"

如果你修改了本仓库源码并希望本地直接使用命令:

pip install -e .

命令行快速开始

写入一个 secret:

funsecret write my-password app prod mysql password

读取一个 secret:

funsecret read app prod mysql password

查看有哪些 key,只显示路径,不显示 value:

funsecret list

查看当前存储信息:

funsecret info

清空当前本地 secret:

funsecret clear

跳过确认直接清空:

funsecret clear --yes

命令说明

write

funsecret write VALUE CATE1 CATE2 [CATE3] [CATE4] [CATE5]

示例:

funsecret write sk-xxxxx openai prod api_key
funsecret write root123 mysql local root password

read

funsecret read CATE1 CATE2 [CATE3] [CATE4] [CATE5]

示例:

funsecret read openai prod api_key
funsecret read mysql local root password

list

funsecret list

输出示例:

openai prod api_key
mysql local root password

注意:list 不会输出 secret value。

info

funsecret info

输出示例:

backend: sqlite
database_url: sqlite:////Users/you/.secret/.funsecret.db
database_file: /Users/you/.secret/.funsecret.db
secret_count: 2
cipher_key_configured: yes
mysql_example_url: mysql+pymysql://username:password@127.0.0.1:3306/funsecret

save

把当前本地 secret 保存到一个数据库。

funsecret save DB_URL

保存到 MySQL:

funsecret save mysql+pymysql://username:password@127.0.0.1:3306/funsecret

如果传了 --cipher-key,写入目标库时会加密:

funsecret save mysql+pymysql://username:password@127.0.0.1:3306/funsecret --cipher-key my-secret-key

如果不传 --cipher-key,保存到目标库时不加密。

load

从一个数据库加载 secret 到当前本地库。

funsecret load DB_URL

从 MySQL 加载:

funsecret load mysql+pymysql://username:password@127.0.0.1:3306/funsecret

如果源库里的数据是加密的,可以传 --cipher-key:

funsecret load mysql+pymysql://username:password@127.0.0.1:3306/funsecret --cipher-key my-secret-key

如果不传 --cipher-key,默认按未加密数据读取。

Python 用法

写入:

from funsecret import write_secret

write_secret("my-password", "app", "prod", "mysql", "password")
write_secret("sk-xxxxx", "openai", "prod", "api_key")

读取:

from funsecret import read_secret

password = read_secret("app", "prod", "mysql", "password")
api_key = read_secret("openai", "prod", "api_key")

也可以用 read_secret(..., value=...) 直接写入:

from funsecret import read_secret

read_secret("app", "prod", "mysql", "password", value="my-password")

默认存储位置

默认使用本地 sqlite:

~/.secret/.funsecret.db

若该目录已有 .nltsecret.db 且尚无 .funsecret.db,会继续使用旧数据库,现有密钥无需搬迁。

也可以通过环境变量控制:

  • FUN_SECRET_PATH:本地 secret 目录
  • FUN_SECRET_URL:直接指定数据库 URL

快照扩展

快照功能需要单独安装:

pip install funsecret-snapshot

保存快照:

from funsecret.snapshot import save_snapshot

save_snapshot(bin_id, cipher_key, security_key)

读取快照:

from funsecret.snapshot import load_snapshot

load_snapshot(bin_id, cipher_key, security_key)

Metadata

Release files for funsecret 1.4.85

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for funsecret 1.4.85
File Interpreter ABI Platform
funsecret-1.4.85-py3-none-any.whl Python 3 none any Details

Release files / funsecret-1.4.85-py3-none-any.whl

Download URL funsecret-1.4.85-py3-none-any.whl
Size 12.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
994da372455e7b66506e3efc8a30845477e2fc63a30d1f79d3b40069e9e76a32
BLAKE2b-256 checksum
How to use checksums
e6ec0010e52f1bca1010bee8639d43fe3ef495ade6d4e94c23d72cfbf6710f5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

1.4.96

1 release file

1.4.95

1 release file

1.4.93

1 release file

1.4.92

1 release file

1.4.88

1 release file

1.4.87

1 release file

1.4.86

1 release file

This release

1.4.85 This release

1 release file

1.4.84

1 release file

1.4.67

1 release file

1.4.66

1 release file

1.4.65

1 release file

1.4.64

2 release files

1.4.63

2 release files

1.4.60

2 release files

1.4.59

2 release files

1.4.58

1 release file

1.4.57

1 release file

1.4.56

1 release file

1.4.55

1 release file

1.4.54

1 release file

1.4.53

1 release file

1.4.52

1 release file

1.4.51

1 release file

1.4.50

2 release files

1.4.49

2 release files

1.4.47

2 release files

1.4.46

2 release files

1.4.45

2 release files

1.4.44

2 release files

1.4.43

2 release files

1.4.42

2 release files

1.4.41

2 release files

1.4.40

2 release files

1.4.39

2 release files

1.4.38

2 release files

1.4.37

2 release files

1.4.36

2 release files

1.4.35

2 release files

1.4.34

2 release files

1.4.33

2 release files

1.4.32

2 release files

1.4.31

2 release files

1.4.30

2 release files

1.4.29

2 release files

1.4.28

2 release files

1.4.27

2 release files

1.4.26

2 release files

1.4.25

2 release files

1.4.24

2 release files

1.4.23

2 release files

1.4.22

2 release files

1.4.21

2 release files

1.4.20

2 release files

1.4.19

2 release files

1.4.18

2 release files

1.4.17

2 release files

1.4.16

2 release files

1.4.15

2 release files

1.4.14

2 release files

1.4.13

2 release files

1.4.12

2 release files

1.4.11

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.2.17

1 release file

1.2.16

1 release file

1.2.15

1 release file

1.2.14

1 release file

1.2.13

1 release file

1.2.12

1 release file

1.2.11

1 release file

1.2.9

1 release file

1.2.8

1 release file

1.2.7

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.31

1 release file

1.1.30

1 release file

1.1.29

1 release file

1.1.28

1 release file

1.1.27

1 release file

1.1.26

1 release file

1.1.25

1 release file

1.1.24

1 release file

1.1.23

1 release file

1.1.22

1 release file

1.1.21

1 release file

1.1.20

1 release file

1.1.19

1 release file

1.1.18

1 release file

1.1.17

1 release file

1.1.16

1 release file

1.1.15

1 release file

1.1.14

1 release file

1.1.13

1 release file

1.1.11

1 release file

1.1.9

1 release file

1.1.8

1 release file

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page