English · Deutsch · Español · 简体中文 · 日本語 · Português
Find, lint, edit, and organize agent skills from one local interface.
Features · Install · Safety · Development · Security
Lines discovers SKILL.md files, reports lint findings, and lets you review,
edit, move, archive, trash, and restore skills from a local browser. Skill
content remains on the filesystem; one JSON file stores settings, dismissed
alerts, and active recovery records.
- Discover skills across configurable filesystem roots and deduplicate aliases.
- Apply the same configurable lint rules to skill cards and the live editor.
- Edit
SKILL.mdfiles in a focused CodeMirror modal with atomic saves. - Filter by text, agent/root, and alert state.
- Move, archive, trash, restore, and undo without permanent deletion.
- Keep the small amount of local state in one readable JSON file.
- Run as one Go binary with embedded assets and no frontend build step.
- Linux
- Go 1.22 or newer
- A desktop browser
Lines is local software. It listens only on the loopback interface and does not provide remote access or authentication.
Clone the repository, then build the binary:
git clone https://github.com/shy-tangerine/lines.git
cd lines
go build -o build/lines .From the repository:
./scripts/run.shThe script builds and starts Lines on http://127.0.0.1:8765. Keep the terminal
open and press Ctrl-C to stop it. Local state is stored at db/lines.json.
Open http://127.0.0.1:8765. Set LINES_ADDR or LINES_STATE before running the
script to change the listen address or state path. Lines rejects non-loopback
listen addresses.
Lines deliberately accepts only loopback listen addresses. It can change files
inside configured scan roots, so keep normal backups of any skills you cannot
recreate. Trash uses the operating system's
trash; archive uses db/archive/. Lines never permanently deletes a skill.
Skill content stays in SKILL.md files. db/lines.json stores settings,
dismissed alerts, and only the operations that can still be restored. The state
file and archive are excluded from Git.
Run the complete local verification suite with:
./scripts/check.shThe backend is in internal/lines/, the embedded browser UI is in web/, and
There is no frontend build step. Feature contracts and design decisions are
documented in docs/.
| Path | Purpose |
|---|---|
main.go |
Local server entry point and embedded assets |
internal/lines/ |
Discovery, linting, persistence, and file operations |
web/ |
Vanilla JavaScript interface and vendored browser dependencies |
db/ |
Gitignored JSON state and local archive |
docs/ |
Current product contracts and writing rules |
skills/lines-launcher/ |
Optional agent launcher skill |
See SECURITY.md for the security model and reporting guidance.
The current tree is a pre-release candidate. It has not been published or tagged as a public release.
If Lines saves you time, you can support continued maintenance through GitHub Sponsors.
Lines is available under the MIT License.



