diff --git a/CHANGELOG.md b/CHANGELOG.md index b136596..3a34ca4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.4.0-alpha] - 2026-08-21 + +## Added +- `export` command +- `import` command + ## [0.3.0-alpha] - 2026-08-15 ### Added diff --git a/README.md b/README.md index d49d6a5..c342d14 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# spellbook 0.3.0-alpha +# spellbook 0.4.0-alpha `spellbook` is a lightweight CLI command manager written in Go. It allows you to save complex shell commands as parameterized templates ("spells") and execute them instantly with custom arguments. @@ -35,7 +35,7 @@ git clone https://github.com/abelith/spellbook.git cd spellbook # Build static binary -CGO_ENABLED=0 go build -ldflags="-X main.Version=0.3.0-alpha" -o spellbook . +CGO_ENABLED=0 go build -ldflags="-X main.Version=0.4.0-alpha" -o spellbook . # Move to bin directory (for Linux/macOS) mv spellbook $(go env GOPATH)/bin/ @@ -61,7 +61,7 @@ Use `spellbook` to list prepared spells ### Searching through your spellbook -Use `spellbook search -n name -c cmd -d desc -t tags [query]` to find spells matching the query +Use `spellbook search -n [name] -c [cmd] -d [desc] -t [tags] [query]` to find spells matching the query | Name | Shorthand | Description | |----------|-----------|------------------------------------------------------------------------------| @@ -73,10 +73,27 @@ Use `spellbook search -n name -c cmd -d desc -t tags [query]` to find spells mat > At least one of the parameters above is required +### Export spellbook + +Use `spellbook export -f [format] -o [output]` to export your spellbook + +| Name | Shorthand | Description | +|------------|-----------|-----------------------------------------------------------------------------| +| `--format` | `-f` | Output format. Supported formats: `jsonl` | +| `--output` | `-o` | Output source. Leave empty to use `stdout` or provide with output file name | + +### Import spellbook + +Use `spellbook import -f [format] -i [input]` to import your spellbook + +| Name | Shorthand | Description | +|------------|-----------|--------------------------------------------------------------------------| +| `--format` | `-f` | Input format. Supported formats: `jsonl` | +| `--input` | `-i` | Input source. Leave empty to use `stdin` or provide with input file name | ### Add new spell -Use `spellbook add -n name -t tags -d desc -- [command]` to add a new spell +Use `spellbook add -n [name] -t [tags] -d [desc] -- [command]` to add a new spell | Name | Shorthand | Description | Required | |-----------|-----------|------------------------------------|----------| @@ -135,8 +152,9 @@ spellbook my-spell target=127.0.0.1 --- ## Upcoming Features -- Export/import spellbooks +- Built-in shell interpreter - Namespaces +- More export/import formats ## Known issues - `KEY=VAL my-cmd` inline environment variable syntax is currently not supported (will fail with `executable file not found in $PATH`)