@husic/setly
v1.0.0
Published
Guided UI for describing and setting app configuration (JSON appsettings, .env, and more)
Downloads
409
Maintainers
Readme
Setly — Guided UI for app settings, env vars, and config files
Guided UI for describing and setting application configuration across projects.
Setly scans a project folder for known config files, turns them into guided forms
with metadata (describe-config*.json), and writes updates back through providers
(JSON / DotEnv today).
Quick start
npm install
npm run devOpen http://127.0.0.1:5173. The API runs on port 3847 and is proxied from the UI.
On the home page, Add project and point at examples (absolute path).
Install from npm
npm install -g @husic/setly
setlyProduction / local CLI
npm run build
npm start
# or
npm link
setlyOpen a folder or config file directly:
setly .
setly ./examples
setly ./examples/appsettings.jsonFlags:
--port <n>— listen on a fixed port (default: ephemeral)--no-open— do not launch the browser-h,--help— show usage
How it works
- Add a project — scan a folder (recursive, sensible depth) for supported configs.
- Open a config from the project page or sidebar sub-item.
- If describe metadata is missing beside the target, it is generated automatically.
- Configure — fill the typed form (session values until you generate).
- Describe — edit labels, types, defaults, required; add parameters.
- Preview / Generate — preview output, overwrite the file, or copy to clipboard.
Providers
| Provider | Discovers |
|----------|-----------|
| JSON | appsettings.json, appsettings.*.json |
| DotEnv | .env, .env.* (skips .env.example / .env.sample) |
When generating, pick any output format: preview, copy to clipboard, or write to a
chosen path. Nested JSON keys flatten to DotEnv with __ (e.g. Host.Name →
Host__Name). Overwrite only updates the opened file in its native format.
Storage
Projects (root path, editable label, discovered configs) live in browser
localStorage (setly:projects:v2). Removing a project only forgets it in the UI.
describe metadata
Sibling files next to each config, e.g.:
appsettings.json→describe-config.jsonappsettings.Development.json→describe-config.appsettings.Development.json.env→describe-config.env.json
Supported field types: string, number, boolean, json, dropdown (with
Options: [{ Label, Value }, …] for quick environment presets).
Publishing to npm
Publishing uses npm Trusted Publishing (OIDC) from GitHub Actions — no
NPM_TOKEN secret.
- On npmjs.com/package/@husic/setly →
Settings → Trusted Publisher: GitHub Actions,
AjdinHusic/setly, workflow filenamepublish-npm.yml(no environment unless the job sets one). - Bump
"version"inpackage.jsonand push tomain. - Release from package version creates
tag
vX.Y.Z+ a GitHub Release if that tag does not exist yet. - Publish to npm runs on that release and
publishes via OIDC (
permissions: id-token: write, npm CLI ≥ 11.5.1).
