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

推荐订阅源

Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
D
DataBreaches.Net
The Register - Security
The Register - Security
GbyAI
GbyAI
量子位
Microsoft Azure Blog
Microsoft Azure Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
博客园 - Franky
博客园 - 叶小钗
F
Full Disclosure
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
P
Privacy International News Feed
AWS News Blog
AWS News Blog
Latest news
Latest news
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
L
LINUX DO - 热门话题
IT之家
IT之家
Simon Willison's Weblog
Simon Willison's Weblog
V
Visual Studio Blog
N
Netflix TechBlog - Medium
Scott Helme
Scott Helme
博客园 - 聂微东
The Last Watchdog
The Last Watchdog
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
小众软件
小众软件
Cyberwarzone
Cyberwarzone
Hacker News: Ask HN
Hacker News: Ask HN
TaoSecurity Blog
TaoSecurity Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
B
Blog RSS Feed
T
Tor Project blog
C
Cybersecurity and Infrastructure Security Agency CISA
Recent Announcements
Recent Announcements
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
S
Secure Thoughts
Help Net Security
Help Net Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
Vercel News
Vercel News
Stack Overflow Blog
Stack Overflow Blog
S
Security Archives - TechRepublic
L
LINUX DO - 最新话题
Forbes - Security
Forbes - Security

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 - EdoardoBambini/Agent-Armor-Iaga: AI agents are getting tool access — shell, file system, databases, APIs, secrets. But **nobody is governing what they actually do with it**. Frameworks like LangChain, CrewAI, AutoGen, and Claude Code give agents the power to execute. Agent Armor gives you the power to control, audit, and approve every single action before it happens. HN Vibes — Week 15, Apr 7–13 2026 GitHub - chojs23/ec: Easy terminal-native 3-way git mergetool vim-like workflow GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - JakOb-dotcom/cloud-sandbox-security-analysis: Technical analysis and Proof of Concept (PoC) regarding environment variable exfiltration in containerized cloud sandboxes via side-channel data leaks. Springboards - Flint Alpha Show HN: A simpler coding agent harness GitHub - audiodude/sudomake-friends GitHub - 256thFission/mini-mythos: OSS clone of Anthropic’s Mythos harness to locate C/C++ memory vulnerabilities Show HN: OpenParallax: OS-level privilege separation for AI agent execution Hacker News Sorted - Chrome 应用商店 Show HN: How to Install Docker on Ubuntu 24.04 LTS: Complete 2026 Guide GitHub - himanshudongre/smriti GitHub - sverrirsig/claude-control: macOS desktop dashboard for monitoring and managing multiple Claude Code sessions GitHub - ory/dockertest: Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work. Chiral - Chrome 应用商店 Show HN: Two Claudes collaborating through shared memory on a $100 mini-PC GitHub - pmichaillat/latex-cv: Minimalist LaTeX template for academic CVs GitHub - oguzbilgic/posse: A web UI for Anthropic Managed Agents. GitHub - sshiraz/depsly: Dependency risk analysis tool for npm packages ABI Add safari/agent-harness — Safari browser automation via safari-mcp by achiya-automation · Pull Request #212 · HKUDS/CLI-Anything GitHub - Halfblood-Prince/trustcheck: Verify PyPI package attestations and improve Python supply-chain security GitHub - oguzbilgic/kern-ai: Agents that do the work and show it. GitHub - bruits/satteri: High-performance Markdown and MDX processing for the JavaScript ecosystem GitHub - tylergibbs1/feedstock: High-performance web crawler and scraper for TypeScript, powered by Bun and Playwright GitHub - Grimm67123/grimmbot: The self-improving sandboxed and open-source AI agent. With persistent memory and scheduling. GitHub - whitevanillaskies/whitebloom: Local whiteboard that blooms. GitHub - hwdsl2/docker-whisper: Docker image for a self-hosted Whisper speech-to-text server with speaker diarization and OpenAI-compatible transcription and translation APIs. Powered by faster-whisper. Supports all Whisper models, NVIDIA GPU (CUDA) acceleration, JSON/SRT/VTT output, SSE streaming, offline mode, and multi-arch (amd64, arm64). GitHub - yisding/reviewwiggum GitHub - MarwanAlsoltany/serrors: Structured errors for Go: sentinel hierarchies, typed data, custom formatting, and slog integration. GitHub - soatok/age-php GitHub - Luthiraa/markitme GitHub - stagas/rtdiff: realtime git diff gui and AI-assisted commits GitHub - tombedor/excalicharts GitHub - wh1le/excalidraw-edit: Open and edit .excalidraw files from the terminal. Offline, auto-saves to disk. MalExt Sentry - Malicious Extension Scanner - Chrome 应用商店 GitHub - syi0808/asciianimesvg: Generate animated ASCII art SVGs from text. CLI, Rust library, WASM, and web editor. GitHub - zaina-ml/ml_forge: A visual-based graph node editor for training computer vision models. GitHub - anakin87/llm-rl-environments-lil-course: 🌱 A little course on Reinforcement Learning Environments for evaluating and training Language Models GitHub - takaakit/superpowers-uml: Superpowers-UML modifies Superpowers to ensure a software development workflow in which AI agents design through UML modeling. AdriByte Studio - Sviluppo Web e Soluzioni Digitali GitHub - chouligi/angel-copilot: Your personalized Angel Investment Advisor Show HN: MoodSense AI (ML and FastAPI and Gradio, Deployed on Hugging Face) Moodsense Ai - a Hugging Face Space by aman179102 GitHub - agenteractai/lodmem: Level Of Detail Context Management for Agents GitHub - ostefani/subnetlens: A fast, concurrent network scanner with a TUI and plain-text CLI, built in Go. It discovers live hosts on your network, scans their open ports, resolves hostnames, and fingerprints operating systems—delivered. Cyber Pulse: Agentic Intel - Apps on Google Play Whisper API: Self-Hostable Speech to Text Transcription The Agent-Web Protocol Stack: A Research Thesis GitHub - msmarkgu/RelayFreeLLM: A restful API designed to route user prompts to various AI model providers. Show HN: Provepy – A Python decorator that proves your code using Lean and LLMs Show HN: Pardonned.com – A searchable database of US Pardons GitHub - patrickdappollonio/dux: Dux is a terminal UI that lets you run multiple AI coding agents side by side, each in its own git worktree, with full companion terminals, macros, commit generation, and a command palette that knows more tricks than you do. kMC Crystal Simulator Show HN: HyperFlow – A self-improving agent framework built on LangGraph GitHub - stef41/vibescore: 🎵 Grade your vibe-coded project. One command, instant letter grade across security, quality, dependencies, and testing. GitHub - stef41/lmscan: 🔍 Detect AI-generated text and fingerprint which LLM wrote it. Open-source GPTZero alternative. Zero dependencies, works offline. imgur.com GitHub - visionscaper/collabmem: Enabling long-term collaboration with Agentic AI - building up episodic and world model memory over time with in-context awareness 在 Steam 上购买 FriedrichAI: Offline AI 立省 10% GitHub - atripati/ark: AI Runtime Kernel — a context operating system for AI agents. Eliminates tool bloat, loads only what’s needed, and gives LLMs their reasoning space back. GitHub - nowork-studio/toprank: Open-source Claude Code skills for SEO, SEM, Google Ads GitHub - tacomanator/sash: Lightweight macOS menu bar app for reliably cycling through windows of the current application. Appents | Social Media Management for Product-First Teams GitHub - pnhoang/youtube-spam-blocker: Automatically detects and hides spam messages in YouTube Live chat. Set rate limits, keyword filters, and block repeat offenders. GitHub - decisionnode/DecisionNode: CLI + Local MCP - A shared structured memory store across Claude Code, Cursor, Windsurf, Antigravity, and every MCP client. Semantically queryable. GitHub - AvaCodeSolutions/django-email-learning: An open source Django app for creating email-based learning platforms with IMAP integration and React frontend components. The $100K Gap in Kubernetes Security Tooling Function Calling Harness: From 6.75% to 100%
GitHub - addozhang/jk: Pipeline-native Jenkins CLI
addozhang · 2026-06-15 · via Hacker News: Show HN

A Pipeline-native CLI for Jenkins.

jk is for the day-to-day pipeline operator: inspect a job, trigger a build, watch it, tail its log, answer an input step — all from the terminal, all driven by the Jenkins URL you'd paste into a browser.

What jk is

  • URL-as-identity: every command takes a Jenkins URL; the host (and optional context path) picks the stored credentials.
  • Stable, self-owned schema: yaml (default), json, or raw. Output begins with schemaVersion: "1"; breaking changes bump the version.
  • Pipeline-aware: understands wfapi (stage tree, parallel branches, pending input).
  • Scripting-friendly: --watch returns the build result via exit code; -o json pipes cleanly into jq.
  • Agent-ready: ships an optional skill that teaches AI coding agents how to use jk safely from the terminal.

What jk is not

  • Not a general Jenkins administration tool — no plugin/agent/credentials-store management.
  • Not a Freestyle CLI — Pipeline (declarative or scripted) is the supported job type.
  • Not a Jenkinsfile linter or editor.

Install

Homebrew (macOS / Linux)

brew install addozhang/tap/jk

Requires the tap repo addozhang/homebrew-tap to be accessible.

go install

go install github.com/addozhang/jk/cmd/jk@latest

Requires Go 1.22+. The Go toolchain fetches the module directly from GitHub; no proxy is needed for a public repo. If you forked into a private repo, set GOPRIVATE=github.com/addozhang/* first.

Download a pre-built binary

Download jk_<version>_<os>_<arch>.tar.gz from the Releases page, extract, and move jk onto your PATH.

Quick start

# 1. Add credentials for your Jenkins host
jk auth add https://jenkins.example.com

# 2. Inspect a pipeline
jk pipeline info https://jenkins.example.com/job/my-folder/job/my-pipeline

# 3. Trigger a build and watch it finish
jk build trigger https://jenkins.example.com/job/my-folder/job/my-pipeline \
    -p ENV=staging --watch

# 4. Tail the console log of the latest build
jk build logs https://jenkins.example.com/job/my-folder/job/my-pipeline/lastBuild -f

# 5. Respond to a paused input step with parameter values
jk build input https://jenkins.example.com/job/deploy/42 proceed \
    -p ENV=prod -p DRY_RUN=false

# 6. Cancel a running build
jk build cancel https://jenkins.example.com/job/deploy/42 --wait

# 7. Inspect the parameter values a build was triggered with
jk build params https://jenkins.example.com/job/my-pipeline/lastSuccessfulBuild

AI agent skill

jk includes a companion skill for AI coding agents at skills/jk-jenkins-cli/. The skill is a concise operating guide for agents that need to inspect Jenkins failures, trigger and watch builds, read stage-scoped logs, or handle pending Pipeline input steps with the right safety checks.

Use it when an agent has terminal access and needs to work with Jenkins through jk. The skill emphasizes:

  • using Jenkins URLs as the unit of identity;
  • preferring -o json for machine-readable inspection;
  • inspecting status and stages before reading logs;
  • using --stage for focused log reads;
  • checking pendingInput and --input-id before acting on input steps;
  • avoiding unsupported Jenkins administration tasks.

First-time setup

1. Add a host credential

jk auth add https://jenkins.example.com
# Token: (paste your Jenkins API token — input is hidden)

Credentials are stored in ~/.config/jk/credentials (mode 0600, TOML format). Tokens are never printed by any jk command.

Context-path-scoped credentials

jk auth add accepts an optional context path, so several Jenkins instances reachable on the same host — distinguished only by a reverse-proxy prefix — can each hold their own credential:

jk auth add https://ci.example.com/team-a   # instance under /team-a
jk auth add https://ci.example.com/team-b   # instance under /team-b
jk auth add https://ci.example.com          # host-only fallback (optional)

The stored key is scheme://host[:port] plus the normalised context path — the segments before the first /job/; a bare host or a pure /job/... URL stores no path. When a command runs, jk selects the most specific entry whose key is a path-prefix of the request URL, falling back to the host-only entry when no context path matches. Matching honours segment boundaries, so a /team-a entry never captures a request to /team-amber.

2. Custom CA / self-signed certificates

If your Jenkins is behind a TLS proxy with a self-signed certificate, point SSL_CERT_FILE at the PEM bundle:

export SSL_CERT_FILE=/etc/ssl/my-ca-bundle.pem
jk pipeline info https://jenkins.example.com/job/...

Pass --insecure only as a last resort; it disables all certificate verification and prints a warning.

URL conventions

jk treats the Jenkins URL as the primary identifier. Every URL shape that Jenkins produces is accepted:

URL shape Meaning
https://host/job/pipeline top-level pipeline
https://host/job/folder/job/pipeline pipeline inside a folder
https://host/job/folder/job/sub/job/pipeline arbitrarily nested folders
https://host/job/mb/job/main multibranch pipeline → branch main
https://host/job/pipeline/42 specific build #42
https://host/job/pipeline/lastBuild symbolic last build
https://host/job/folder/ folder (for pipeline list)
https://host/jenkins/job/pipeline instance mounted under a context path (/jenkins, /domain, …)

Any of the seven Jenkins build permalinks may appear in the build-position slot in place of a numeric build number: lastBuild, lastCompletedBuild, lastSuccessfulBuild, lastUnsuccessfulBuild, lastFailedBuild, lastStableBuild, lastUnstableBuild. Jenkins resolves them server-side; jk output always records the resolved numeric buildNumber.

Jenkins instances deployed under a URL context path (a reverse-proxy mount such as /jenkins, or a multi-tenant prefix like /domain) are supported: any path segments before the first /job/ are preserved and replayed against the server. A context path can also scope stored credentials, so multiple instances on one host can each hold their own token — see Context-path-scoped credentials under First-time setup.

Normalisation rules:

  • Trailing slashes are stripped.
  • Default ports (:80 for http, :443 for https) are dropped when looking up credentials, so https://jenkins.example.com and https://jenkins.example.com:443 resolve to the same credential entry.
  • The credential lookup key is scheme://host[:non-default-port] plus an optional context path. A request resolves to the most specific stored key that is a segment-boundary path-prefix of the URL, falling back to a host-only entry — so a single host can serve several credentialed instances while a plain host entry still covers every path beneath it.

Scripting with jk

JSON output

# Get just the build result
jk build status https://host/job/pipeline/42 -o json | jq -r '.result'

# Find any pending input
jk build status https://host/job/pipeline/lastBuild -o json | jq '.pendingInput'

Exit codes

When --watch is not used, jk exits 0 on success or 10 on any jk-level error (bad URL, auth failure, network problem, TLS verification failure, CSRF crumb failure, malformed Jenkins response). The stderr message identifies which.

When --watch is used with jk build trigger, or --wait is used with jk build cancel, the exit code reflects the build's terminal state:

Code Meaning
0 Build SUCCESS
1 Build FAILURE
2 Build UNSTABLE
3 Build ABORTED
4 Build paused at PENDING_INPUT (poll deadline reached)
10 jk-level error (see stderr)
jk build trigger https://host/job/pipeline --watch
echo $?   # 0..4 = build result; 10 = jk-level failure

Schema pinning

All structured output begins with schemaVersion: "1". Scripts should assert on this value:

schema=$(jk pipeline info https://host/job/foo -o json | jq -r '.schemaVersion')
[ "$schema" = "1" ] || { echo "unexpected schema $schema"; exit 1; }

Breaking changes will increment the version; additive changes (new fields, new enum values tagged experimental) will not. See docs/schema.md for the full field reference and versioning policy.

Release notes

v0.6.0 — build cancel

New features

  • jk build cancel <build-url> stops a running build via the Jenkins /stop endpoint — the same action as the UI Stop button. The build is marked ABORTED after any post { always {} } cleanup blocks run.
  • --wait flag polls the build until it reaches a terminal state and exits with the build-result exit code (3 for ABORTED). The poll correctly passes through the brief PENDING_INPUT window that occurs while Jenkins is processing the stop request, rather than treating it as a terminal state.
  • Accepts build permalinks (lastBuild, etc.) in the build-position slot, consistent with all other build commands.

v0.5.1 — error message fix

Bug fixes

  • Build commands now report Build not found: <url> (with a suggestion to check the build number) instead of the misleading Pipeline not found message when Jenkins returns HTTP 404 for a build URL.

v0.2.0 — input-step parameters and status correctness

New features

  • jk build input <url> proceed now accepts repeatable -p KEY=VALUE flags to submit parameter values to a paused input step. @PATH loads the value from a file. Values are validated client-side against the pending input's declared shape (CHOICE / BOOLEAN / STRING / TEXT / PASSWORD) before any HTTP call; invalid values exit 10 with a message that names the offending parameter and lists the valid choices.
  • pendingInput.parameters in jk build status output is promoted from experimental to stable. Scripts can rely on the field name and Parameter shape.

Behavior changes (bug fixes)

  • Finished builds no longer report state: PENDING_INPUT. A non-building build is always DONE, regardless of whether a stale pendingInput action marker is still attached to Jenkins's core /api/json response.
  • Live paused builds now populate pendingInput.id, pendingInput.message, and pendingInput.parameters correctly. The data is sourced from /wfapi/pendingInputActions rather than the core actions[] array, which only carries an _class marker.

See docs/schema.md §3.7 and §3.9 for the full field reference and endpoint wire-format details.

Develop

make build             # build ./bin/jk
make test              # unit + integration with -race
make test-e2e          # end-to-end (requires `make e2e-up` first)
make lint              # golangci-lint v2, zero warnings required
make release-snapshot  # local cross-platform snapshot via GoReleaser
make help              # full target list

Requires Go 1.22+ and golangci-lint v2.

Docs

  • SPEC.md — engineering practice, tech stack, boundaries.
  • openspec/ — change management; behavior changes go through OpenSpec.
  • docs/schema.md — output schema contract (field reference, enum catalog, versioning policy).