Metadata-Version: 2.5
Name: installgate
Version: 0.1.1
Summary: Pre-install trust gate for coding agents. Check pip/npm before install; never runs the package.
Project-URL: Homepage, https://github.com/Seavleu/installgate
Project-URL: Documentation, https://github.com/Seavleu/installgate#readme
Project-URL: Source, https://github.com/Seavleu/installgate
Project-URL: Issues, https://github.com/Seavleu/installgate/issues
Author: InstallGate contributors
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: fastapi
Requires-Dist: httpx
Requires-Dist: mcp
Requires-Dist: openai
Requires-Dist: packaging
Requires-Dist: pydantic>=2
Requires-Dist: pyyaml
Requires-Dist: rapidfuzz
Requires-Dist: typer
Requires-Dist: uvicorn[standard]
Provides-Extra: dev
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-asyncio; extra == 'dev'
Requires-Dist: respx; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Provides-Extra: tavily
Requires-Dist: tavily-python; extra == 'tavily'
Description-Content-Type: text/markdown

# InstallGate

Pre-install trust gate for coding agents. You pass one `pip install` or `npm install` command. InstallGate reads **registry metadata only** (never installs), applies a YAML policy, and returns **ALLOW**, **REVIEW**, or **BLOCK**.

A clean ALLOW is pinned (`name==version`) and skips the model. BLOCK needs hard deterministic evidence. The model may explain; it cannot override policy.

## Install

Python 3.11+.

```bash
uv tool install installgate
uv tool update-shell
```

If you use pipx:

```bash
pipx install installgate
```

Then `ig` is on your PATH from any directory (same idea as installing Node, then typing `node`).

## Use

`--no` means check only — it never runs pip/npm.

```bash
ig --no pip install requests         # ALLOW, pin, no model
ig --no pip install reqeusts         # BLOCK typo; substitute is pinned requests
ig --no pip install no-such-pkg-xyz  # BLOCK, no substitute
```

Exit codes: `0` ALLOW, `1` REVIEW, `2` BLOCK.

Optional keys in the environment (or a `.env` in the current directory):

- `NEBIUS_API_KEY` — explanations on REVIEW/BLOCK (NVIDIA Nemotron on Nebius Token Factory). ALLOW does not need it.
- `TAVILY_API_KEY` — recent web evidence (untrusted, never a BLOCK).

## MCP

```bash
uvx --from installgate python -m mcp_server.server
```

Tool: `check_install`. Argument: `command`.

## Docs

GitHub: [Seavleu/installgate](https://github.com/Seavleu/installgate) (full README, policy, demo).
Live page: [installgate.installgate-ui.workers.dev](https://installgate.installgate-ui.workers.dev)

License: Apache-2.0
