Skip to content

LynxPrompt

LynxPrompt

Release Docker pulls GitHub stars License


LynxPrompt is a self-hosted web app that turns one set of AI coding rules into the file each tool reads: AGENTS.md, CLAUDE.md, .cursor/rules/, Copilot instructions, 30 rule-file formats in all, plus slash commands for six of them. A wizard writes the rules from your stack, blueprints let a team share them with variables, and the CLI and the VS Code extension put the files into every repository.

This site is about running your own instance: start with Docker Compose, then the settings, the CLI and how it is built. The product manual (the wizard step by step, blueprints, the CLI and API reference) is a separate site at lynxprompt.geiser.cloud/docs, and lynxprompt.geiser.cloud is a hosted instance you can try without installing anything.

The web app

The wizard asks about the project, the stack, the commands, the code style and the boundaries, then writes the files for the tools you pick. Usage walks through the wizard, the blueprint pages, the dashboard and teams.

The wizard on its last step, with the generated rules and the formats to export

What it does

  • Keeps one set of rules for 26 coding agents in one AGENTS.md, with an import, a config or a full copy for the tools that do not read it directly (the list is in Features), plus slash commands for 18 of them.
  • Builds those rules in a 12-step wizard on the web, or with lynxp wizard in a terminal; lynxp analyze reads an existing repository first.
  • Keeps blueprints with [[VARIABLE|default]] placeholders, so one blueprint fits many projects. Each blueprint is private, shared with a team, or public.
  • Gives a team its own page and its own blueprints. An opt-in federation lists the instances that join in a shared directory.
  • Manages hierarchical AGENTS.md files for monorepos, from the dashboard, the CLI (lynxp hierarchies) and the API.
  • Serves the same data to the CLI, the VS Code extension and a REST API with per-token roles.
  • Signs users in with a magic link, passkeys, GitHub or Google OAuth, or OIDC SSO; each is one environment variable.
  • Edits blueprints with Claude when you set your own Anthropic API key; off by default, and everything else works without it.

How it runs

flowchart LR
    BR[Browser]
    CLI[lynxp CLI<br/>VS Code extension<br/>GitHub Action]
    subgraph app [lynxprompt container, port 3000]
        WEB[Next.js app and API]
        MIG[prisma migrate deploy on start]
    end
    DB[(PostgreSQL<br/>app, users, blog, support schemas)]
    SMTP[Your SMTP server<br/>sign-in mail]
    OPT[Optional: GitHub or Google OAuth,<br/>SSO provider, Anthropic API]
    FED[Other instances<br/>public blueprints]

    BR <--> WEB
    CLI <-->|API token| WEB
    WEB --> DB
    MIG --> DB
    WEB --> SMTP
    WEB -.-> OPT
    WEB <-.-> FED
  • The image is drumsergio/lynxprompt, built for linux/amd64 and linux/arm64, running as user id 1001.
  • Migrations run every time the container starts (prisma migrate deploy on the four schemas), so an upgrade is a tag change and docker compose up -d.
  • The self-host compose file runs one PostgreSQL server with one database per schema (lynxprompt, lynxprompt_users, lynxprompt_blog, lynxprompt_support). See Components.
  • The CLI and the extension talk to /api/v1/ with an API token you create in Settings. See How it works.

What it does not do

  • It does not send mail by itself. The default login is a magic link, so a real deployment needs the five SMTP_* variables; the Mailpit file is only for trying it out.
  • It does not run your AI tools. It writes the files they read.
  • It does not edit with AI unless you give it an Anthropic API key.

Privacy

  • Accounts, blueprints, drafts and teams live in your PostgreSQL; avatars, team logos and blog images live in the uploads volume. Back up both volumes and you have everything.
  • Every other outside service is off until you switch it on with an environment variable: SMTP for sign-in mail, GitHub and Google for OAuth, an SSO provider, Anthropic for AI editing, Cloudflare Turnstile, Umami analytics. The exception is Gravatar: an account without a profile picture shows a Gravatar image, so browsers request gravatar.com with a hash of that account's email address. See Configuration.
  • Federation is off by default. With ENABLE_FEDERATION=true, at start and every six hours the instance sends its domain (the host of APP_URL) to the registry at lynxprompt.geiser.cloud, and /.well-known/lynxprompt.json answers with its name, version and number of public blueprints. /api/v1/federation/blueprints lists the name, description, tags and author of public blueprints; nothing private is listed, and no blueprint content is sent anywhere. Unless it is turned on, the instance makes no call to the registry.
  • The security policy is in SECURITY.md.

Getting help

License

LynxPrompt is released under the AGPL-3.0-or-later license.