cncf / cncf/mentoring

[CNCF LFX Proposal] Meshery AXI - Making mesheryctl Agent-Native

Open
#2,021 15 comments 0 reactions 0 assignees View on GitHub
2026 CNCF Approved Exported lfx mentorship Maintainer/Contribex Approved Mentors Confirmed Proposal Term 3: Sept-Nov Validation Passed
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.