惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
C
Check Point Blog
M
MIT News - Artificial intelligence
T
The Blog of Author Tim Ferriss
Jina AI
Jina AI
博客园 - 【当耐特】
U
Unit 42
月光博客
月光博客
腾讯CDC
Y
Y Combinator Blog
小众软件
小众软件
博客园_首页
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
T
Tailwind CSS Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - jbethune777/ninchi: Human Software Accountability
jbethune · 2026-05-12 · via Hacker News: Show HN

Does your team understand the code they ship?

Ninchi is an open-source developer accountability tool. When a developer opens a pull request, Ninchi analyzes the diff, generates a targeted comprehension question using an LLM, and posts a timed challenge directly in the PR. The developer answers in a web UI. The LLM grades their answer and updates the PR status.

The goal is not to punish developers or restrict AI-assisted coding — it's to ensure humans remain accountable for the software they ship.


How it works

Developer opens a PR
        ↓
Ninchi analyzes the diff
        ↓
LLM generates a comprehension question + rubric
        ↓
Challenge link posted as a PR comment
        ↓
Developer clicks → timed answer page
        ↓
LLM evaluates the answer
        ↓
PR check updated (pass / fail / informational)

Modes

Mode PR impact Use case
Casual None Individual learning, zero friction
Tracking None (always green) Observe before enforcing
Blocking Fails on wrong answer Accountability enforcement
Strict Fail + tighter time limits High-stakes codebases

New installs default to Tracking so you can see it in action before flipping on enforcement.


Try it in 60 seconds (no GitHub App needed)

The fastest way to see Ninchi work — just the LLM pipeline against a real diff:

# Install the core package
pip install -e core/

# Run against the built-in JWT auth sample diff
OPENAI_API_KEY=sk-... python scripts/demo.py

# Use a preset question (no LLM generation wait — good for testing pass/fail)
OPENAI_API_KEY=sk-... python scripts/demo.py --preset

# Run against your own recent changes
git diff HEAD~1 | OPENAI_API_KEY=sk-... python scripts/demo.py --stdin

# Use Anthropic Claude instead of OpenAI
NINCHI_LLM_MODEL=anthropic/claude-3-5-sonnet-20241022 \
ANTHROPIC_API_KEY=sk-ant-... \
python scripts/demo.py

Full self-hosted setup

What you'll need

  • Docker + Docker Compose
  • An OpenAI or Anthropic API key
  • A GitHub account (to create a GitHub App)
  • ngrok (to receive webhooks during local development)

1. Clone and configure

git clone https://github.com/ninchi-ai/ninchi
cd ninchi
cp .env.example .env

Edit .env — at minimum you need:

NINCHI_LLM_MODEL=openai/gpt-4o
OPENAI_API_KEY=sk-...
SECRET_KEY=$(openssl rand -hex 32)
APP_BASE_URL=http://localhost:3000

The rest of the GitHub App credentials are filled in after step 2.

2. Create a GitHub App

See docs/github-app-setup.md for the full step-by-step guide. The short version:

  1. Go to https://github.com/settings/apps/new
  2. Set the webhook URL to your ngrok URL + /webhooks/github
  3. Grant Pull requests (read/write), Contents (read), and Commit statuses (read/write)
  4. Subscribe to Pull request events
  5. Generate a private key and save it as github-app.pem in the repo root
  6. Copy the App ID, Client ID, and Client Secret into .env

3. Start the stack

docker compose up --build

This starts Postgres, Redis, the FastAPI backend (with migrations), and the Celery worker.

Start the Next.js frontend separately for hot reload:

cd frontend && npm install && npm run dev

The UI is at http://localhost:3000. The API is at http://localhost:8000/docs.

4. Install the App on a repo and open a PR

Go to https://github.com/apps/YOUR-APP-NAME/installations/new, install it on a test repo, then open any pull request. A Ninchi challenge comment should appear within ~20 seconds.


Repo structure

ninchi/
├── core/           # The engine: diff analysis, LLM question generation, answer evaluation
├── backend/        # FastAPI API + Celery workers
├── frontend/       # Next.js: timed challenge UI
├── scripts/        # CLI demo tool
└── docs/           # GitHub App setup guide

The core/ package is the heart of Ninchi. It has no dependencies on the rest of the stack and can be used directly:

from ninchi_core import analyze_diff, generate_question, evaluate_answer
from ninchi_core.models import LLMConfig

config = LLMConfig(model="openai/gpt-4o", api_key="sk-...")
analysis = analyze_diff(my_diff_text)
question = generate_question(analysis, config)
result = evaluate_answer(question, developer_answer, config)
print(result.passed, result.score, result.feedback)

Run the tests

pip install -e "core/[dev]"
pytest core/tests/ -v

LLM support

Ninchi uses litellm under the hood, so any model it supports works. Set NINCHI_LLM_MODEL to any litellm model string:

NINCHI_LLM_MODEL=openai/gpt-4o
NINCHI_LLM_MODEL=anthropic/claude-3-5-sonnet-20241022
NINCHI_LLM_MODEL=ollama/llama3.1   # local model via Ollama

Contributing

PRs welcome. A few pointers:

  • The prompts in core/ninchi_core/prompts.py are the most impactful thing to improve — question quality and evaluation fairness are the core product
  • core/tests/ has unit tests for the engine; add tests for any change to generation or evaluation logic
  • The difficulty calibration (matching question depth to the significance of the diff) is an ongoing area of improvement

License

MIT. See LICENSE.


Built by Ninchi. We use Ninchi on our own PRs.