Skip to main content

NAIL — Neutral AI Interaction Layer

Lead your agents. Review the results.

NAIL brings Claude Code, Codex and Antigravity conversations together with Git diffs, inline comments and agent controls in one browser workspace. Run it on your own Linux computer or server and connect from your laptop, tablet, phone or another computer.

Free to use · Self-hosted · Browser access

Website · How-to guides · PyPI · Detailed reference

NAIL agent workspace

What you can do

  • Work with multiple AI agents. Open conversations with Claude Code, Codex and Antigravity, stream their answers and inspect tool activity.
  • Control permissions. Choose permission modes and answer approval requests directly in the conversation. Available behavior depends on the agent and backend.
  • Review changes and send feedback. Read syntax-highlighted, word-level Git diffs, comment on lines or selections, and send comments to an agent.
  • Track review progress. Mark files reviewed; files that change afterward return to the review queue.
  • Explore history and subagents. Reopen conversations and inspect supported subagent activity without losing your place.
  • Manage multiple accounts. Keep provider accounts in one workspace, with provider-specific login and account handling.
  • Check usage. Inspect available token and quota information from supported providers.
  • Follow agent status. Traffic lights show agents working, finished, or waiting for your input.
  • Queue instructions. Prepare follow-up messages, use Send now, and keep separate unsent drafts for conversations.
  • Generate diff summaries. Summarize the current changes with a supported AI tool or a local Ollama model.
  • Switch repositories and worktrees. Browse projects, compare branches and review worktrees as files change.
  • Protect remote access. Use admin/viewer roles, password login and authenticator-based MFA with recovery codes.

The workspace also includes file attachments, file mentions, supported slash commands and skills, keyboard shortcuts, themes and optional Web Push notifications.

Requirements

  • Linux and Python 3.12 or newer.
  • Git and a browser.
  • The AI tools you want to use, installed and configured on the NAIL host: claude, codex, agy, or Ollama for local summaries.

NAIL is free to use. AI provider subscriptions, API charges and hosting costs are separate. Agent capabilities and authentication differ by backend; see the integration reference.

Quick start

Install with pipx:

pipx install 'nailayer[claude-sdk,codex-sdk,push]'

Set up your workspace and open a project:

nail setup
nail ~/path/to/project

Open the address printed in the terminal. The default address is http://127.0.0.1:8765; the port can differ if it is already in use or configured otherwise.

On first launch, NAIL guides you through configuration and, when needed, creating the first administrator. Configure and authenticate each agent on the host using that provider’s normal setup.

Other useful commands:

nail                         # Start without selecting a project
nail -f                      # Run in the foreground
nail --gui                   # Open a local app window
nail --version
nail config check            # Inspect effective configuration

The optional GUI window requires a compatible local desktop environment. Browser access is the normal way to use NAIL remotely.

Agent backends

Integration Default live-chat backend Installation and authentication
Claude Code SDK Install the claude-sdk extra; uses the selected Claude Code login.
Codex SDK Install the codex-sdk extra; uses the selected CLI account and CODEX_HOME.
Antigravity CLI Uses the installed agy CLI and its login.
Antigravity SDK Optional Install agy-sdk, set NAIL_AGY_BACKEND=sdk, and configure SDK API/Vertex credentials separately.

NAIL_CLAUDE_BACKEND=cli and NAIL_CODEX_BACKEND=cli explicitly select the legacy adapters. Missing SDK dependencies produce an installation error rather than silently changing backends. Antigravity SDK credentials and billing are separate from its personal CLI subscription.

SDK integrations are evolving. See the detailed backend notes for compatibility constraints and validation limits.

Access from other devices

Phone / Tablet / Laptop / Remote computer
                    │
              Browser connection
                    │
          Your computer or server
              NAIL + AI tools
                    │
             Your repositories

The website is a static introduction and documentation site. The application and its agents run on your host, using that host’s repositories and configured provider credentials.

For remote access, configure HTTPS directly, use an HTTPS reverse proxy, or connect over a private VPN. NAIL listens on loopback by default. Network access requires configuration; see the remote access guide and deployment examples.

Create an administrator and enable MFA before remote login:

nail user add yourname --role admin
nail user mfa yourname

By default, administrators need MFA for network login. Agents execute with the host user’s access, subject to the selected permission mode and any configured sandbox. The optional bubblewrap cage can restrict their filesystem access; see the sandbox guide.

Configuration and data

Configuration defaults to ~/.config/nail/nail.toml. Use nail setup for guided configuration, or:

nail config init
nail config check
nail --config /path/to/nail.toml
Location Contents
~/.config/nail/nail.toml Server and security configuration
~/.config/nail/nail.db Users, logins and application settings
~/.cache/nail/nail.log Server log
.git/nail.json in the repository Review comments and review progress

XDG environment settings can change the configuration and cache locations. Provider conversation data stays in provider-specific locations; optional SDK integrations can also maintain state under NAIL’s configuration directory.

See the configuration reference for individual options, defaults and examples.

Development

git clone https://github.com/branislav-brujic/nail.git
cd nail
python3 -m venv .venv
.venv/bin/pip install -e '.[dev,claude-sdk,codex-sdk,agy-sdk,push]'
.venv/bin/python nail.py -f

Run checks and build a package:

.venv/bin/python -m pytest
.venv/bin/ruff check src tests
.venv/bin/python -m build

Node.js enables the JavaScript checks run by the test suite. Most backend tests use local doubles; passing tests does not establish live provider compatibility. See the detailed reference for integration validation notes.

Application code is in src/nailayer/, browser assets in src/nailayer/web/, and tests in tests/. The package name is nailayer; the executable is nail.

License

NAIL is free to use, modify and share under the NAIL License, including use as a tool for paid work and internal company use. Selling NAIL, or offering a paid product or service whose value derives substantially from it, requires prior written permission. See the license for the full terms.

Bundled highlight.js is covered by its BSD-3-Clause license.

Created by Branislav Brujic.

Metadata

Release files for nailayer 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nailayer 0.5.0
File Size Uploaded Provenance Actions
nailayer-0.5.0.tar.gz 461.7 kB Without provenance Details for nailayer-0.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nailayer 0.5.0
File Interpreter ABI Platform Actions
nailayer-0.5.0-py3-none-any.whl Python 3 none any Details for nailayer-0.5.0-py3-none-any.whl

Total release size: 841.1 kB

Release files / nailayer-0.5.0.tar.gz

Download URL nailayer-0.5.0.tar.gz
Size 461.7 kB
Tags Source
SHA-256 checksum
How to use checksums
96d9c294ab7e9dac7f0dc2b541529170bbc1f68e1915535cc350c6e477daba51
BLAKE2b-256 checksum
How to use checksums
e4be365d835fe0773bacf24b97f4548efa2169ab39442eae18aa54480753b53e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release files / nailayer-0.5.0-py3-none-any.whl

Download URL nailayer-0.5.0-py3-none-any.whl
Size 379.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3b8fb3b09090c094536d60dc05fba0c5ea5c48589986504cfc0cfa7f85da7d3c
BLAKE2b-256 checksum
How to use checksums
2c4850ba23d72dbfc6b02b0fffc51a559436e8602ad1ec6daa3421e0ae5479fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Security for nailayer 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page