Codync
免费开源的 1:1 Grok Bot 与 Muse 替代方案。可在 iPhone、Mac 或 Linux 桌面上将 Claude 代码、Codex、Cursor 以及 40 多个编码代理作为持久机器人使用。支持群组聊天、线程、应用。
AI 翻译
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证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