Skip to content

Feat: Major CLI foundational improvements#319

Open
blainekasten wants to merge 2 commits intonextfrom
blaine/dx-367-switch-cli-framework-to-cyclopts
Open

Feat: Major CLI foundational improvements#319
blainekasten wants to merge 2 commits intonextfrom
blaine/dx-367-switch-cli-framework-to-cyclopts

Conversation

@blainekasten
Copy link
Copy Markdown
Contributor

@blainekasten blainekasten commented Apr 2, 2026

Summary

This PR is a major rehaul of the CLI but unlocks a bunch of exciting new things. To end users, the changes should be nearly 100% opaque. I'll break this description up into a few chunks: What this previous issues are fixed from this, What is new because of this, and what's next.

What this previous issues are fixed from this

There were several thorns about Click that get fixed by switching to Cyclopts.

One of them was the awkward token parsing for the top level-shared parameters like --api-key. Previously you had to do it like together --api-key [command] [command-args], with this you can specify these at any part of the path.

Another was about the way click handled runtime. It operated each level as an independent stack so we had to wrap commands with decorators to do error handlers, and telemetry log handlers. In this new world, we can handle all of this at a single top level point, greatly simplifying.

What is new because of this

A bunch of new things are happening and most of it is around giving us finer control of all things from logic to aesthetics. Being built on top of rich we can use the theme to give common design to our application from the help pages to our internal print() calls.

Additionally we get a big performance boost in this in a few ways. First, Cyclopts is async so we can use the Async client and parallelize more work. Second, Cyclopts supports lazy loading commands. This means if you run together files list the files list code is loaded, but other modules aren't! This should improve the start time and memory overhead of using the CLI.

what's next

This PR is generally meant to switch the code over and give us a foundation to build upon. The foundation includes standing up some basic components/design library which we will build upon in the future. We will also be working to support more human experience improvements in the future around prompting parameters.

Testing Plan

  • Integration and Unit Tests pass
  • Output of each command has been verified and evidence pasted below
  • Proper review from Team members

Output Evidence

together / together --help image

endpoints

together endpoints / together endpoints --help image
together endpoints availability-zones image
together endpoints availability-zones --json image
together endpoints create image
together endpoints create --model Qwen/Qwen2.5-7B image
together endpoints create --model Qwen/Qwen2.5-7B --hardware 2x_nvidia_h100_80gb_sxm image
together endpoints create --model Qwen/Qwen2.5-7B --hardware 2x_nvidia_h100_80gb_sxm --json image
together endpoints delete image
together endpoints delete endpoint-26b0e2a7-e554-431d-849c-8dbb23b96506 image
together endpoints delete endpoint-26b0e2a7-e554-431d-849c-8dbb23b96506 --json image

@blainekasten blainekasten force-pushed the blaine/dx-367-switch-cli-framework-to-cyclopts branch 3 times, most recently from 1649ebf to 6a88ff0 Compare April 2, 2026 20:14
@blainekasten blainekasten changed the title Blaine/dx 367 switch cli framework to cyclopts Feat: Major CLI foundational improvements Apr 2, 2026
@blainekasten blainekasten force-pushed the blaine/dx-367-switch-cli-framework-to-cyclopts branch 8 times, most recently from ead4ec2 to bbef950 Compare April 3, 2026 19:00
@blainekasten blainekasten force-pushed the blaine/dx-367-switch-cli-framework-to-cyclopts branch 15 times, most recently from 000a6be to ab49311 Compare April 13, 2026 15:28
@blainekasten blainekasten force-pushed the blaine/dx-367-switch-cli-framework-to-cyclopts branch 2 times, most recently from 21c1859 to 7680ca1 Compare April 13, 2026 18:09
@blainekasten blainekasten force-pushed the blaine/dx-367-switch-cli-framework-to-cyclopts branch 20 times, most recently from eea2b8a to 7eafb4d Compare April 17, 2026 17:03
@blainekasten blainekasten force-pushed the blaine/dx-367-switch-cli-framework-to-cyclopts branch 5 times, most recently from 09fd278 to 4fda3ad Compare April 18, 2026 17:22
@blainekasten blainekasten force-pushed the blaine/dx-367-switch-cli-framework-to-cyclopts branch from 4fda3ad to 170bdb6 Compare April 18, 2026 17:30
@blainekasten blainekasten requested review from Nutlope and zainhas April 19, 2026 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants