packet-ask
A local CLI that sends only a scrubbed packet to a SUB agent. The MAIN agent is whichever session you are in now.
It copies the files or diff you choose, scrubs them, then either runs an official CLI against that packet or prints packet.md to paste elsewhere.
This tool shrinks what you send on purpose. It does not guarantee no leakage and does not stop vendor training. Vendor terms still apply. See SECURITY.md (Korean).
MIT licensed. See LICENSE.
- PyPI: pypi.org/project/packet-ask
- Repository: github.com/ictechgy/packet-ask
Requirements
- Python 3.11+
- uv 0.10.9+ (same lower bound as
uv_buildinpyproject.toml) - GLM / Claude SUB runs: a
claudeCLI on the allowlist path (origin signatures are not verified) - Kimi runs: a
kimiCLI on the allowlist path paste/grok/agyprint a packet and do not launch a vendor
Keys are environment variables only. This tool does not read .env files. Do not put key values on the command line; they land in shell history. .env is gitignored. Variable names are in .env.example. The executable allowlist is in SECURITY.md. doctor only checks that help text mentions required flags. It does not prove a no-tools sandbox.
Install
uv tool install packet-ask
packet-ask install-skills
packet-ask doctor
If it is already installed, run uv tool upgrade packet-ask. pipx install packet-ask and pip install packet-ask in a venv also work.
From the GitHub default branch:
uv tool install git+https://github.com/ictechgy/packet-ask
Local checkout:
uv sync
uv run packet-ask doctor
install-skills writes SKILL.md to ~/.claude/skills/packet-ask, ~/.grok/skills/packet-ask, ~/.codex/skills/packet-ask, and ~/.agents/skills/packet-ask. After that, /packet-ask or a phrase like "review with kimi" should make MAIN call this CLI.
Scope
review requires one of the flags below. It does not send the whole working tree by default.
| Flag | What is sent |
|---|---|
--files |
the listed files |
--diff |
the given git range |
--staged |
staged diff |
--unstaged |
uncommitted working-tree diff |
research does not attach local files or diffs by default. The only exception is --include-files. --diff and --staged are rejected.
Usage
packet-ask providers
# Packet only; do not launch a vendor
packet-ask review --provider paste --files src/app.py --question "Find race conditions in this code"
packet-ask review --provider paste --files src/app.py --json --question "Find race conditions in this code"
# GLM. Key: PACKET_ASK_GLM_KEY
packet-ask review --provider glm --diff HEAD --question "Review this change"
# Uncommitted working-tree diff. review without a scope flag is rejected
packet-ask review --provider paste --unstaged --question "Review this change"
# Anthropic Claude SUB. Key: PACKET_ASK_CLAUDE_KEY. Parent BASE_URL is unchanged
packet-ask review --provider claude --files src/app.py --question "Review this code"
# Kimi. Key: PACKET_ASK_KIMI_KEY
packet-ask review --provider kimi --files src/app.py --question "Review this code"
# grok/agy still paste; they do not run a no-tools one-shot yet
packet-ask review --provider grok --files src/app.py --question "Review this code"
# Research. Local files are off by default
packet-ask research --provider paste --question "What usually breaks in a Tailwind v4 migration?"
packet-ask doctor
Kimi is official kimi --quiet one-shot. It does not open an interactive session. It refuses to run without PACKET_ASK_KIMI_KEY. Tools are disabled with a tools: [] agent file and a non-matching [tools] enabled list. KIMI_CODE_HOME is only the isolated profile ~/.config/packet-ask/providers/kimi/kimi-code. Do not run kimi in the real repo.
GLM uses the official claude binary. It does not change the parent shell ANTHROPIC_BASE_URL. Only the child environment gets the Z.ai Claude Code endpoint and PACKET_ASK_GLM_KEY.
Packet temp dirs live in the OS cache, not the git worktree. cwd is not a sandbox. A PACKET_ASK_CACHE_DIR inside the worktree is rejected. .gitignore entries for .packet-ask-tmp/ and packet.md only stop leftover files from being committed.
User config ~/.config/packet-ask/providers.toml adds paste aliases only. It does not accept executables, argv, or env.
version = 1
[providers.gemini]
label = "Gemini CLI"
Skills
packet-ask install-skills installs into harness homes. The skill only tells MAIN to call packet-ask. Isolation is enforced by the CLI.
Exit codes
10–14 mean the vendor process was never started.
| Code | Meaning |
|---|---|
| 0 | success |
| 1 | internal error |
| 2 | usage error |
| 10 | policy reject (implementation, incidents, ...) |
| 11 | scope reject |
| 12 | redaction / re-check failed |
| 13 | could not confirm launch conditions |
| 14 | over budget |
| 20 | provider or key missing |
| 21 | provider failed |
| 22 | output guard failed (dedicated key leak or oversized output) |
Development
uv sync --group dev
uv run pytest
See CONTRIBUTING.md.
License
MIT Copyright (c) 2026 Coden
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file packet_ask-0.1.4.tar.gz.
File metadata
- Download URL: packet_ask-0.1.4.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5dec20dc4d18b14da8760eb105bf79cda980cbc1d2cb331efbb4f64586a50c5
|
|
| MD5 |
6fc8eed3f8d30e1138befecbe07b3203
|
|
| BLAKE2b-256 |
6e322a01abcaf9f7cc5e7085560e30c501785ee60824beeb34f41288fbf5ebf0
|
Provenance
The following attestation bundles were made for packet_ask-0.1.4.tar.gz:
Publisher:
release.yml on ictechgy/packet-ask
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
packet_ask-0.1.4.tar.gz -
Subject digest:
c5dec20dc4d18b14da8760eb105bf79cda980cbc1d2cb331efbb4f64586a50c5 - Sigstore transparency entry: 2622705614
- Sigstore integration time:
-
Permalink:
ictechgy/packet-ask@658d99aa42c8c672df49f9120fada6e9ec03873d -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/ictechgy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@658d99aa42c8c672df49f9120fada6e9ec03873d -
Trigger Event:
push
-
Statement type:
File details
Details for the file packet_ask-0.1.4-py3-none-any.whl.
File metadata
- Download URL: packet_ask-0.1.4-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7c40bdbc5b2cefedb4c3465f5cbe13c1f6c24380a25bfa39539291360671c34
|
|
| MD5 |
31b67b61b25bb63db3d0ad644255a7fe
|
|
| BLAKE2b-256 |
3857ad330abc0747b2cde96fa0e2843227b20123b4fc61a950e24fd75d1e3afe
|
Provenance
The following attestation bundles were made for packet_ask-0.1.4-py3-none-any.whl:
Publisher:
release.yml on ictechgy/packet-ask
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
packet_ask-0.1.4-py3-none-any.whl -
Subject digest:
d7c40bdbc5b2cefedb4c3465f5cbe13c1f6c24380a25bfa39539291360671c34 - Sigstore transparency entry: 2622706594
- Sigstore integration time:
-
Permalink:
ictechgy/packet-ask@658d99aa42c8c672df49f9120fada6e9ec03873d -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/ictechgy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@658d99aa42c8c672df49f9120fada6e9ec03873d -
Trigger Event:
push
-
Statement type: