Codync
무료 오픈소스 1:1 대안, Grok Bot과 Muse 대신
Kospex는 엔지니어링 팀을 위한 Git 분석 도구입니다
Kospex is git analytics for engineering teams: find orphaned repos, map who knows which code, identify key person risk, and analyse open source dependencies across all your repositories.
개발 도구Python · HTMLGitHub @kospex온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Know your code and know your developers: git analytics, code ownership, key person risk, dependency and supply chain freshness, and tech landscape — from a CLI and local web UI.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Kospex maps the knowledge, technology and maintenance risk hiding in your git repositories.
It answers questions that are surprisingly hard to answer at scale:
Kospex inspects cloned repositories on disk and aggregates everything into a single
queryable database, so you can ask those questions across one repo or thousands.
There are two ways to use it: a CLI for scanning, querying and automation, and a
Web UI (kweb) for exploring the data interactively.
Inspired by the excellent Mergestat lite, whose database structure we use to model data from git repositories.
Requires Python 3.12+. A virtual environment is optional but strongly recommended.
# 1. Install
pip install kospex
# 2. Set up ~/kospex (config, database, logs) and ~/code (cloned repos)
kospex init --create --verbose
# 3. Clone a repo — this clones into ~/code/GIT_SERVER/ORG/REPO and syncs it
kgit clone https://github.com/mergestat/mergestat-lite
# 4. Ask some questions
kospex summary
kospex developers -days 90
kospex tech-landscape -metadata
# 5. Explore it all in the browser at http://127.0.0.1:8000
kweb
Already have repositories cloned somewhere? Sync the lot in one go:
kospex sync-directory /path/to/your/repos
For complexity metrics and much better file type detection, install the
scc binary (brew install scc). It's optional, but recommended.
Full walkthrough: Getting started.
Who knows what, and whether they're still around.
More than just languages — kospex identifies the whole toolchain from filenames, paths and content:
sccThe result is a technology landscape you can compare over time — what you build with now, versus twelve months ago.
Signals that code needs attention — or an owner:
Longer write-ups are in use cases.
Most commands need data synced into the kospex DB first.
| Command | What it does |
|---|---|
kospex summary | Overview of every synced repo — developers, activity and status |
kospex developers -days 90 | Developers who've committed recently |
kospex tech-landscape -metadata | Technology stack across everything you've synced |
kospex stats REPO_ID | Developer stats and key person analysis for one repo |
kospex key-person PATH/TO/REPO | Top all-time and top active committers |
kospex orphans | Repos with no still-active committers (experimental) |
kospex hotspot -repo PATH/TO/REPO | Files that change often and are complex |
kospex deps -repo PATH/TO/REPO | Find dependency manifest and lock files |
kospex sca | Lightweight software composition analysis |
kospex list-repos -db | Everything synced into the database (add -repo_id for the ID column) |
kweb | Start the Web UI on http://127.0.0.1:8000 |
Most query commands accept -repo PATH/TO/REPO for a repo on disk, or -repo_id /
-org_key / -server to query synced data. For example:
kospex developers -repo_id github.com~kospex~kospex
kospex tech-landscape -repo_id github.com~kospex~kospex
kospex developers -server github.com -days 365
Run kospex COMMAND --help for the switches on any command, or see the full
command reference.
kgit pull --all # git pull + re-sync every known clone
kgit pull --check --all # offline staleness report, no network
kgit pull --org github.com~myorg # or scope to one org, server or repo_id
kospex sync-metadata -repo PATH/TO/REPO
Syncing a repo does not refresh its dependencies — see Refreshing data for which command updates which table.
Kospex uses a GIT_SERVER/ORG/REPO directory layout for cloned repos:
| Directory | Purpose |
|---|---|
~/kospex/ | Config files, the kospex DB (SQLite3) and logs |
~/code/ | Cloned repositories, in a GIT_SERVER/ORG/REPO structure |
For example:
~/code/
github.com/
kospex/kospex
mergestat/mergestat-lite
bitbucket.org/
myorg/myrepo
This gives a deterministic way of separating orgs, and different git instances as well
(e.g. an on-premise Bitbucket alongside GitHub.com). Override the defaults with the
KOSPEX_HOME and KOSPEX_CODE environment variables.
Most tables have a _repo_id column in the format GIT_SERVER~OWNER~REPO, so
https://github.com/kospex/kospex becomes github.com~kospex~kospex. Most queries use
author_email from git to mean "a developer".
Many reports describe something as active, aging, stale or unmaintained. That's a simple calculation from a given date, using these default rules:
| Description | Rule |
|---|---|
| Active | < 90 days |
| Aging | > 90 and < 180 days |
| Stale | > 180 and < 365 days |
| Unmaintained | > 365 days |
It's applied to the last commit in a repo, the last update of a package manager file, or the release date of a library you depend on. Something labelled "unmaintained" may well be feature complete — but where there are external dependencies, code usually needs a change a couple of times a year.
kospex, kgit, kweb and krunner referenceBug reports and pull requests are welcome via GitHub issues.
To work on kospex, clone it and install in editable mode. The [test] extra adds
pytest and httpx, which the test suite needs:
git clone https://github.com/kospex/kospex
cd kospex
pip install -e ".[test]"
pytest
Quote the extra (".[test]") — zsh treats bare brackets as a glob. If you only want to
run kospex rather than develop it, pip install -e . is enough.
Frontend assets are built with npm install && npm run build.
We're aiming to [k]now your c[o]de by in[spe]cting the haruspe[x]. From Wikipedia, The Latin terms haruspex and haruspicina are from an archaic word, hīra = "entrails, intestines" — so yes, we do look at the "guts of your code" to understand your applications, technology landscape (sprawl?) and developers.
MIT © Peter Freiberg