Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

kubectl vs orlojctl — Which Tool Do I Use?

When the CRD operator is deployed, Orloj resources live as real Kubernetes CRDs. This means kubectl can handle basic CRUD — but orlojctl remains the primary tool for operations, runtime control, and admin tasks.

Resource Lifecycle (CRUD)

Actionkubectl (with operator)orlojctl (always works)
Create / Updatekubectl apply -f agent.yamlorlojctl apply -f agent.yaml
Listkubectl get agentsorlojctl get agents
Describekubectl describe agent my-agentorlojctl describe agent my-agent
Deletekubectl delete agent my-agentorlojctl delete agent my-agent
Diffkubectl diff -f agent.yamlorlojctl diff -f agent.yaml
Editkubectl edit agent my-agentorlojctl edit agent my-agent
Validatekubectl apply --dry-run=server -f agent.yamlorlojctl validate -f agent.yaml
Watchkubectl get agents -worlojctl get agents -w

Both tools work for CRUD when the operator is running. Choose based on your workflow:

  • GitOps / CI pipelinekubectl apply (or let Argo CD / Flux do it)
  • Interactive / ad-hocorlojctl apply (talks directly to the Orloj API, no operator required)

Operations (orlojctl only)

These commands interact with the Orloj runtime and have no kubectl equivalent:

CommandPurpose
orlojctl run --system <name>Create and execute a task
orlojctl cancel task <name>Cancel a running task
orlojctl retry task <name>Retry a terminal task
orlojctl approve / denyApprove or deny tool/task approvals
orlojctl logs <agent>Stream agent execution logs
orlojctl trace task <name>Inspect task execution trace
orlojctl graph system <name>Render agent system topology
orlojctl eventsStream control-plane events
orlojctl get tasks -wWatch task lifecycle changes
orlojctl messages task/<name>Inspect inter-agent messages
orlojctl metrics task/<name>View task message metrics
orlojctl memory-entries <name>Query memory store entries
orlojctl top workersWorker utilization overview
orlojctl top tasksTask status overview
orlojctl wait task/<name>Block until a task condition is met

Admin (orlojctl only)

CommandPurpose
orlojctl admin create-userCreate a local user account
orlojctl admin list-usersList all user accounts
orlojctl admin delete-userRemove a user account
orlojctl admin reset-passwordReset a user's password
orlojctl auth whoamiShow current identity
orlojctl create tokenCreate an API bearer token
orlojctl get tokensList API tokens
orlojctl config set-profileConfigure CLI connection profiles
orlojctl seal secretEncrypt secrets for git-safe storage
orlojctl validate -fOffline manifest validation (no server)
orlojctl eval runRun agent evaluations
orlojctl tool testTest WASM tool modules
orlojctl tool scaffoldScaffold a new WASM tool project
orlojctl initScaffold a new agent system

Bottom Line

  • kubectl handles resource CRUD when the operator is deployed — ideal for GitOps and teams that already use kubectl for everything.
  • orlojctl is required for runtime operations (run, cancel, approve, logs, trace) and admin tasks (users, tokens, secrets, eval). It also works for CRUD without the operator.
  • You don't have to choose one exclusively. Most teams use kubectl apply in CI for configuration and orlojctl interactively for operations.

Related Docs