RFC: support Junie by JetBrains in lemonade launch #3608
mashan555
started this conversation in
Request for Comment (RFC)
Replies: 5 comments 1 reply
|
@bitgamma you're listed as the code owner for the lemonade CLI, so tagging you here. This is a minor feature: adding Junie by JetBrains to lemonade launch, one PR. Would appreciate your take when you have time:) |
0 replies
|
sounds reasonable to me, I would also like to hear @sawansri since agent launch is his area |
0 replies
|
This would be a welcome contribution! Please open a PR and request me as a reviewer. |
0 replies
|
🍋 |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Proposal size
Minor feature (a single PR)
Updates
No response
User story
As a Junie user, I want
lemonade launch junie --model <name>to configure Junie for my local model in one step, so that my code never leaves my machine and I don't burn subscription quota on routine tasks. Today this is painful because, while Junie can already talk to OpenAI-compatible endpoints, the whole setup of local model is manual and I have to redo it whenever I switch models.High-level design
The
lemonade launchcommand now supports Junie as an agent:lemonade launch junie --model <name>. No new CLI options were added.junieis a new value for the existingAGENTargument, and--model,--api-key, and--agent-argswork the same way as with other supported agents. When launched, Lemonade loads the selected model, creates a Junie model profile pointing to Lemonade's OpenAI-compatible endpoint, and starts Junie with that profile. The profile is stored in~/.junie/models/lemonade.json, or under$JUNIE_HOMEif that variable is set. Existing Junie profiles are left untouched. Running the command with a different--modelvalue updates the Lemonade profile for that model. If--modelis omitted, Lemonade uses the same interactive model picker as for other agents. The profile contains the API key passed through--api-key, or the default Lemonade placeholder if none is provided, as well as the loaded model'sctx_size. Junie itself is not bundled with Lemonade. If it is not installed, the command prints installation instructions. The integration does not require any server-side, GUI, installer, or packaging changes. Junie is also included in thelemonade launchhelp output and integration documentation.Breaking changes
None. junie is a new value for an existing argument.
Maintenance plan
The feature is covered by CI and should not require continuous human intervention. Six tests in
test/server_cli2.pyuse a stub Junie binary, so CI does not depend on a real Junie installation or inference backend. On Linux and macOS, they cover launch arguments, profile generation,--api-key,$JUNIE_HOME, and preservation of existing profiles. On Windows, CI verifies that binary lookup resolves the expectedjunie.batshim. The main maintenance risk is upstream changes to Junie's profile format,custom:model syntax, or installer layout. CI verifies what Lemonade generates, but not compatibility with future Junie releases. If one of these integration points changes, the profile writer and its tests will need an update, and I will submit that fix. No version pinning or continuous release tracking is required. For this PR, one manual end-to-end test with a real Junie installation is recommended. A Windows check is also useful because CI only validates the expected shim name against a stub.Risks
No response
All reactions