Skip to content
shy-tangerinePublic

About

Local-first manager for discovering, linting, editing, and organizing agent skills.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Lines

English · Deutsch · Español · 简体中文 · 日本語 · Português

Lines — local skills manager

Find, lint, edit, and organize agent skills from one local interface.

Go 1.22+ Vanilla JavaScript JSON state Agent skill MIT

GitHub stars: pre-release Sponsor

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.

Features

  • Discover skills across configurable filesystem roots and deduplicate aliases.
  • Apply the same configurable lint rules to skill cards and the live editor.
  • Edit SKILL.md files 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.

Screenshots

Skills

Lines skills overview

Editor

Lines skill editor with linter warnings

Settings

Lines linter settings

Requirements

  • 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.

Install

Clone the repository, then build the binary:

git clone https://github.com/shy-tangerine/lines.git
cd lines
go build -o build/lines .

Run

From the repository:

./scripts/run.sh

The 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.

Safety and data

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.

Development

Run the complete local verification suite with:

./scripts/check.sh

The 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.

Release status

The current tree is a pre-release candidate. It has not been published or tagged as a public release.

Sponsor

If Lines saves you time, you can support continued maintenance through GitHub Sponsors.

License

Lines is available under the MIT License.

About

Local-first manager for discovering, linting, editing, and organizing agent skills.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages