[CNCF LFX Proposal] Meshery AXI - Making mesheryctl Agent-Native
- Dominant language
- JavaScript
- Stars
- 3.1k
- Forks
- 816
- Avg merge
- 12h 32m
- Merged PRs (30d)
- 8
Description
### CNCF Project
Meshery
### Term
2026 Term 3 (Sep-Nov)
### Program Name
AXI - Making mesheryctl Agent-Native
### Program Description
## Description
`mesheryctl` was designed for humans: bordered tables, ANSI color, interactive confirmation prompts, in-place line clearing. Increasingly it is driven by agents, and for an agent every one of those affordances is a defect. Tables cost tokens, escape codes pollute parsing, and an interactive prompt in a non-TTY context hangs a workflow with no diagnostic. The distinction that resolves this is between two different things `mesheryctl` formats: retrieved content, where a Design or an evaluation result is a schema-defined document whose real serializations are JSON and YAML, and command output, which is `mesheryctl` reporting its own rows, counts, statuses, and errors. The table is a presentation choice, not the identity of the data, and command output is the surface an agent actually pays tokens to read.
This project makes `mesheryctl` compliant with the Agent Experience Interface conventions the surrounding ecosystem is converging on. The mentee introduces a shared render-mode layer so command output can be emitted for humans or for agents, adds TOON as a first-class global output format wherever JSON and YAML are already honored, makes the CLI automatically non-interactive and free of ANSI when stdout is not a TTY, and defines a tested exit code taxonomy and structured error format across the command surface, including the AI provider check and design generation workflows. The result is a CLI that an agent, an MCP server, or a CI job can drive deterministically, and that stays pleasant for the humans who use it every day.
## Expected Outcomes
- A shared render-mode layer applied across `mesheryctl` so command output can be emitted as human tables or agent-oriented structured output, driven centrally rather than command by command.
- Global `-o toon` support wherever `-o json` and `-o yaml` are honored, serializing the same data model with equivalent content across formats.
- Automatic non-interactive behavior when stdout is not a TTY: no prompts, no ANSI, no line clearing, and deterministic, diffable output.
- A documented and tested exit code taxonomy plus structured error output spanning the command surface, including AI provider readiness checks and design generation.
- Golden tests covering render modes across commands, an agent usage section in the mesheryctl documentation, and a machine-readable command manifest consumable by the Meshery MCP Server.
### Technologies
Golang, Cobra, JSON/YAML/TOON, GitHub Actions
### Skills same as Technologies?
- [x] Yes, the required skills are the same as the technologies listed above.
### Required/Desirable Skills
Kubernetes
### Mentors
Lee Calcote | @leecalcote | leecalcote@gmail.com | leecalcote
Yi Nuo | @yi-nuo426 | yinuo084@gmail.com| yinuo
### Upstream Issue URL
https://github.com/meshery/meshery/issues/20979
### Application Prerequisites
- [ ] Resume
- [ ] Cover Letter
- [ ] School Enrollment Verification
- [ ] Participation Permission from school or employer
- [ ] Coding Challenge
- [x] Custom Prerequisite (fill in details below)
### Coding Challenge URL
_No response_
### Custom Prerequisite Name
Participation is Key
### Custom Prerequisite Description
1. Join the community (https://slack.meshery.io).
2. Join the weekly newcomers meeting (https://meet.meshery.io) and learn about the project.
3. Get a feel for Meshery's capabilities in the Playground (https://play.meshery.io)
1. Create a design.
2. Receive a badge (from https://meshery.io/community/recognition/).
Optionally:
1. Add badge to your GitHub profile.
2. Publish your design the Catalog.
4. Ascertain whether your passions and skills align.
### Custom Prerequisite — File Upload
- [ ] Yes — completion of this task requires the mentee to submit a file.
---
**LFX program:** [CNCF - Meshery: AXI - Making mesheryctl Agent-Native (2026 Term 3)](https://mentorship.lfx.linuxfoundation.org/project/82c28ded-28c6-4089-8d6a-5e9dcf7f1c11)
Contributor guide
Research direction
Start by reading the upstream issue and the mesheryctl agent-native proposal to understand the shared render-mode layer, output formats, non-interactive behavior, exit codes, and structured errors. Done means these behaviors work across the command surface, with golden tests, documentation, and a machine-readable command manifest as described in the expected outcomes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, go, json, kubernetes, yaml
- Domain
- cli, developer-experience, devtools, documentation, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100