Metadata-Version: 2.5
Name: reposhape
Version: 0.1.2
Summary: See the shape of a repository at a glance: a local, interactive map of a codebase's file-level imports.
Project-URL: Homepage, https://github.com/nabinpkl/reposhape
Project-URL: Repository, https://github.com/nabinpkl/reposhape
Project-URL: Issues, https://github.com/nabinpkl/reposhape/issues
Author: nabinpkl
License-Expression: MIT
License-File: LICENSE
License-File: src/reposhape/web/THIRD_PARTY_NOTICES.txt
Keywords: code visualization,dependency graph,import graph,monorepo,python,tree-sitter,typescript
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: <3.15,>=3.14
Requires-Dist: fastapi>=0.141.1
Requires-Dist: networkx>=3.6.1
Requires-Dist: pathspec>=1.1.1
Requires-Dist: pydantic-settings>=2.15
Requires-Dist: pydantic>=2.13.5
Requires-Dist: tree-sitter-python>=0.25
Requires-Dist: tree-sitter-typescript>=0.23.2
Requires-Dist: tree-sitter<0.27,>=0.26
Requires-Dist: typer>=0.27.2
Requires-Dist: uvicorn<0.55,>=0.52.4
Description-Content-Type: text/markdown

# reposhape

reposhape draws a map of a codebase: every file, the folder it sits in, and
which files import which. It reads TypeScript, JavaScript, Vue and Python,
runs on your machine, and opens the map in your browser.

![LangChain's monorepo as a map: folders as circles, files as dots sized by line count](https://raw.githubusercontent.com/nabinpkl/reposhape/main/docs/images/langchain-map-lines.jpg)

*The **folders · size** view of LangChain, 1,766 source files with tests
hidden. Each circle is a folder and each dot is a file, sized by its line
count. Colours are clusters worked out from the imports.*

![The same map with the imports that cross between packages drawn on top](https://raw.githubusercontent.com/nabinpkl/reposhape/main/docs/images/langchain-map-edges.jpg)

*The **folders · imports** view: the same repo with the imports that cross
from one package to another drawn on top.*

## Install

You need Python 3.14 on macOS or Linux.

```bash
uv tool install reposhape
```

`pipx install reposhape` works too.

## Quick start

```bash
cd path/to/your/repo
reposhape up .
```

This analyses the repo, starts a small local server and opens the map. The
server keeps running after you close the terminal. `reposhape down` stops it.

| Command | What it does |
| --- | --- |
| `reposhape up .` | Analyse the current repo and open its map |
| `reposhape up <url>` | Clone a repo, analyse it and open its map |
| `reposhape up` | Open the page on the repo picker |
| `reposhape status` | Show whether the server is running, and where |
| `reposhape down` | Stop the server |

## Privacy

Your code is parsed locally with tree-sitter. No LLM and no outside service
is involved. The server only listens on 127.0.0.1 and rejects requests from
other websites.

## More

Docs, source and issues: <https://github.com/nabinpkl/reposhape>. MIT licensed.
