2026-04-22 - 2026-10-22
Overview
3 Releases published by 1 user
Published
v1.0.0-rc3
Published
v1.0.0-rc2
Published
v1.0.0-rc1
45 Pull requests merged by 1 user
Merged
#92 Put the terminal back when a signal ends the mnemonic prompt (closes #91)
Merged
#90 End the mnemonic prompt at end of input (closes #78)
Merged
#89 Check the -o path before looking for the mnemonic (closes #87)
Merged
#88 Read the text form with blank lines in front, as age does (closes #77)
Merged
#86 Say why a mnemonic is refused (closes #76)
Merged
#85 Turn IdentitiesOnly off for ssh to (closes #74)
Merged
#84 Check arguments before looking for the mnemonic (closes #79)
Merged
#83 Keep the mnemonic variables from the mnemonic command (closes #80)
Merged
#81 Read --index and --words as decimal numbers (closes #75)
Merged
#72 go-bip39 gone from go.mod and go.sum
Merged
#71 Require secret at the commit that drops go-bip39
Merged
#28 1.0: ssh install that never replaces what it did not read, current dependencies, a real --version
Merged
#69 Copy go-bip39 into internal/bip39
Merged
#68 Bring every copied template file to sneak/prompts next at dd4027b9 (closes #67)
Merged
#66 package.json carries the license field, as the template does (closes #65)
Merged
#64 Send .gitea in the Docker build context (closes #63)
Merged
#62 ssh install refuses stray arguments before -- and a symlinked authorized_keys (closes #61)
Merged
#60 age -o follows a symlink and writes a pipe or device directly (closes #59)
Merged
#58 ssh install ends within a second of a signal while sftp's ssh still connects (closes #57)
Merged
#54 Signals end every command, not only ssh to and ssh install (closes #48)
Merged
#56 Current templates: safe.directory, golangci-lint v2.14.0, fetch-depth 0, the policy's last stage (closes #50)
Merged
#55 README child-mnemonic vector and host-key note; ssh install refuses a ~/.ssh it cannot enter (closes #51)
Merged
#53 Derive from the mnemonic's words joined by single spaces (closes #49)
Merged
#45 make fmt and make fmt-check cover Markdown with prettier (closes #39)
Merged
#47 script/bootstrap installs the Dockerfile's Go from go.dev (closes #46)
Merged
#43 Lint and test as phases of the Dockerfile (closes #38)
Merged
#44 The linter config, .gitignore and .dockerignore from the current templates (closes #40)
Merged
#41 Move the Go module to sneak.berlin/go/keyfunc (closes #15)
Merged
#37 Add the MIT license (closes #14)
Merged
#36 Stamp the git tag or short commit in a plain docker build (closes #35)
Merged
#32 README checked against the tree by running every example (closes #22)
Merged
#33 Use gomodguard_v2 in the linter config (closes #31)
Merged
#30 Clean up the agent socket and working files when a signal ends the tool (closes #17)
Merged
#24 README: policy sections and age and child mnemonic vectors (closes #21)
Merged
#29 Keep the mnemonic out of the ssh and sftp children (closes #16)
Merged
#27 ssh install tells a missing .ssh from one it cannot enter
Merged
#26 Report the module version for a go install build (closes #18)
Merged
#25 Update dependencies to current releases (closes #19)
Merged
#23 Move entrypoint to cmd/keyfunc (closes #20)
Merged
#11 ssh install works over sftp and runs nothing on the host
Merged
#9 0.1.0: deterministic SSH keys, age identities with encryption, and child mnemonics from one mnemonic
Merged
#8 The ssh install and ssh to commands
Merged
#7 The age commands: pub, priv, encrypt and decrypt
Merged
#6 The mnemonic command: child mnemonics
Merged
#5 Skeleton, mnemonic input, derivation, and the ssh commands
1 Pull request proposed by 1 user
Proposed
#82 next → main: v1.0.0-rc3
44 Issues closed from 2 users
Closed
#91 A signal at the mnemonic prompt leaves the terminal with echo off
Closed
#78 Ctrl-D at the mnemonic prompt is ignored; only a mnemonic or a signal ends the prompt
Closed
#87 age encrypt and age decrypt check the -o path only after the mnemonic has been read
Closed
#77 age decrypt refuses a text-form file with a blank line before its first line; age reads it
Closed
#76 Any invalid mnemonic is reported as a checksum failure, including an empty one
Closed
#74 ssh to: the derived key is never offered when the user's ssh config has IdentitiesOnly yes
Closed
#79 Arguments are checked only after the mnemonic has been read
Closed
#80 The mnemonic command inherits KEYFUNC_MNEMONIC and KEYFUNC_MNEMONIC_COMMAND
Closed
#75 --index reads a leading zero as octal: -n 010 derives key 8
Closed
#70 Drop go-bip39 from go.sum once sneak/secret no longer imports it
Closed
#42 go-bip39 no longer exists upstream: keep it, or copy it into the repo?
Closed
#13 Review toward 1.0: identify and file all next steps
Closed
#67 Bring every copied template file to the current sneak/prompts next, at a named commit
Closed
#65 package.json carries the license field, as the template does
Closed
#63 The development image's /src is a clean checkout: keep .gitea in the build context
Closed
#61 ssh install refuses stray arguments before -- and a symlinked authorized_keys
Closed
#59 age -o replaces a symlink, pipe or device at the path; say the file gets mode 0600
Closed
#57 ssh install keeps running after a signal while sftp's ssh is still connecting
Closed
#48 Every command ends on SIGINT, SIGTERM or SIGHUP; an interrupted age -o leaves no file
Closed
#50 Current templates: safe.directory, golangci-lint v2.14.0, fetch-depth 0, the policy's last stage
Closed
#51 README child-mnemonic vector and host-key note; ssh install refuses a ~/.ssh it cannot enter
Closed
#49 Derive from the mnemonic's words joined by single spaces, whatever separated them
Closed
#52 Update btcd to its current release, or say why it is held
Closed
#39 make fmt and make fmt-check cover Markdown with prettier
Closed
#46 script/cibuild fails on the Gitea runner: script/bootstrap cannot install Go
Closed
#38 Lint and test as phases of the Dockerfile, as the current repo policy requires
Closed
#40 The linter config, .gitignore and .dockerignore from the current templates
Closed
#15 Decide the Go module path before 1.0: sneak.berlin/go/keyfunc or git.eeqj.de
Closed
#14 Choose a license and add LICENSE
Closed
#35 docker build . stamps dev, not the git tag or short commit
Closed
#34 Run every build, test and lint step in the Dockerfiles at nice -n 19
Closed
#22 1.0 release readiness
Closed
#31 golangci-lint: replace deprecated gomodguard with gomodguard_v2 in .golangci.yml
Closed
#17 Clean up the agent socket and working files when a signal ends the tool
Closed
#21 README: the sections the policy requires, and test vectors for age and child mnemonics
Closed
#16 Do not pass the mnemonic environment variables on to ssh and sftp
Closed
#10 ssh install needs rework
Closed
#18 Print a real version from a go install build
Closed
#19 Update dependencies, golang.org/x/crypto first
Closed
#20 Move main.go to cmd/keyfunc
Closed
#1 Repository skeleton, mnemonic input, derivation, and the ssh pub and priv commands
Closed
#4 The mnemonic command: child mnemonics
Closed
#3 The age commands: pub, priv, encrypt, decrypt
Closed
#2 The ssh install and ssh to commands
45 Issues created by 1 user
Opened
#2 The ssh install and ssh to commands
Opened
#1 Repository skeleton, mnemonic input, derivation, and the ssh pub and priv commands
Opened
#4 The mnemonic command: child mnemonics
Opened
#3 The age commands: pub, priv, encrypt, decrypt
Opened
#10 ssh install needs rework
Opened
#13 Review toward 1.0: identify and file all next steps
Opened
#14 Choose a license and add LICENSE
Opened
#15 Decide the Go module path before 1.0: sneak.berlin/go/keyfunc or git.eeqj.de
Opened
#16 Do not pass the mnemonic environment variables on to ssh and sftp
Opened
#17 Clean up the agent socket and working files when a signal ends the tool
Opened
#21 README: the sections the policy requires, and test vectors for age and child mnemonics
Opened
#20 Move main.go to cmd/keyfunc
Opened
#19 Update dependencies, golang.org/x/crypto first
Opened
#18 Print a real version from a go install build
Opened
#22 1.0 release readiness
Opened
#31 golangci-lint: replace deprecated gomodguard with gomodguard_v2 in .golangci.yml
Opened
#34 Run every build, test and lint step in the Dockerfiles at nice -n 19
Opened
#35 docker build . stamps dev, not the git tag or short commit
Opened
#38 Lint and test as phases of the Dockerfile, as the current repo policy requires
Opened
#39 make fmt and make fmt-check cover Markdown with prettier
Opened
#40 The linter config, .gitignore and .dockerignore from the current templates
Opened
#42 go-bip39 no longer exists upstream: keep it, or copy it into the repo?
Opened
#46 script/cibuild fails on the Gitea runner: script/bootstrap cannot install Go
Opened
#48 Every command ends on SIGINT, SIGTERM or SIGHUP; an interrupted age -o leaves no file
Opened
#49 Derive from the mnemonic's words joined by single spaces, whatever separated them
Opened
#50 Current templates: safe.directory, golangci-lint v2.14.0, fetch-depth 0, the policy's last stage
Opened
#51 README child-mnemonic vector and host-key note; ssh install refuses a ~/.ssh it cannot enter
Opened
#52 Update btcd to its current release, or say why it is held
Opened
#57 ssh install keeps running after a signal while sftp's ssh is still connecting
Opened
#59 age -o replaces a symlink, pipe or device at the path; say the file gets mode 0600
Opened
#61 ssh install refuses stray arguments before -- and a symlinked authorized_keys
Opened
#63 The development image's /src is a clean checkout: keep .gitea in the build context
Opened
#65 package.json carries the license field, as the template does
Opened
#67 Bring every copied template file to the current sneak/prompts next, at a named commit
Opened
#70 Drop go-bip39 from go.sum once sneak/secret no longer imports it
Opened
#73 Finish 1.0 and tag it; after that, bugfixes only
Opened
#74 ssh to: the derived key is never offered when the user's ssh config has IdentitiesOnly yes
Opened
#75 --index reads a leading zero as octal: -n 010 derives key 8
Opened
#76 Any invalid mnemonic is reported as a checksum failure, including an empty one
Opened
#77 age decrypt refuses a text-form file with a blank line before its first line; age reads it
Opened
#78 Ctrl-D at the mnemonic prompt is ignored; only a mnemonic or a signal ends the prompt
Opened
#79 Arguments are checked only after the mnemonic has been read
Opened
#80 The mnemonic command inherits KEYFUNC_MNEMONIC and KEYFUNC_MNEMONIC_COMMAND
Opened
#87 age encrypt and age decrypt check the -o path only after the mnemonic has been read
Opened
#91 A signal at the mnemonic prompt leaves the terminal with echo off