rtk-ai/rtk

kubectl rewrite misses --context flag, exec subcommand, and variable assignments

Open

#927 geöffnet am 30. März 2026

Auf GitHub ansehen
 (1 Kommentar) (0 Reaktionen) (0 zugewiesene Personen)Rust (2.914 Forks)batch import
area:clibugeffort-mediumfilter-qualityhelp wantedpriority:high

Repository-Metriken

Stars
 (48.085 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 11T 1h) (45 gemergte PRs in 30 T)

Beschreibung

Problem

rtk discover shows ~1,300 kubectl commands not being rewritten despite kubectl being a supported proxy. The issue is that rtk rewrite only handles the simplest form (kubectl <subcommand> ...) but misses common real-world patterns.

Patterns not rewritten

Pattern Example Expected
Flags before subcommand kubectl --context msquant-test get pods -n test rtk kubectl --context msquant-test get pods -n test
kubectl exec kubectl exec -n test pod-0 -- psql rtk kubectl exec -n test pod-0 -- psql
Variable assignment wrapper REDIS_POD=$(kubectl get pods -n test -l app=redis -o name) REDIS_POD=$(rtk kubectl get pods ...)
Line continuation \kubectl --kubeconfig ... rtk kubectl --kubeconfig ...

Reproduction

$ rtk rewrite 'kubectl get pods -n test'
rtk kubectl get pods -n test          # ✅ works

$ rtk rewrite 'kubectl --context msquant-test get pods -n test'
# exit 1, no output                   # ❌ missed

$ rtk rewrite 'kubectl exec -n test msquant-postgresql-0 -- psql'
# exit 1, no output                   # ❌ missed

$ rtk rewrite 'REDIS_POD=$(kubectl get pods -n test -l app=redis -o name)'
# exit 1, no output                   # ❌ missed

Environment

  • rtk 0.30.1
  • macOS (Darwin 23.5.0)
  • Hook: rtk-rewrite.sh (hook v2)

Impact

~1,300 kubectl commands over 30 days not getting token savings. kubectl output (pod lists, describe, logs) is often very verbose — high savings potential.

Contributor Guide