-
Notifications
You must be signed in to change notification settings - Fork 47
feat(cursor-cli): add Cursor CLI module #309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…CP settings, model/force) - Runs `cursor-agent` directly (no AgentAPI); interactive chat by default - Supports non-interactive prints (-p) with output-format, model (-m), force (-f) - Merges MCP settings into ~/.cursor/settings.json - Installs via npm (uses nvm if needed); terraform tests added
…only - mcp_json -> <folder>/.cursor/mcp.json (optional) - rules_files map -> <folder>/.cursor/rules/* (optional); link rules docs - always -p; default output_format=json; README updates
…itional_settings; simplify non-interactive run
…anup; remove unused options
- Introduced variables for optional pre-install and post-install scripts in the module. - Updated the main script to execute these scripts if provided. - Enhanced tests to validate the embedding of the new scripts.
…and add post-install wait script - Modified main.tf to pass the folder variable to pre-install and post-install scripts. - Added a new post_install_script in README to wait for the repository to be ready before proceeding.
- Removed the `-p` argument and the conditional for `OUTPUT_FORMAT` from the script to streamline execution and avoid unnecessary options.
….sh script - Reintroduced the `-p` argument and the conditional for `OUTPUT_FORMAT` to enhance script functionality and allow for more flexible execution options.
…t arguments - Eliminated the `output_format` variable from main.tf and removed associated logic from start.sh to simplify the script and reduce complexity.
Co-authored-by: DevCats <christofer@coder.com>
@matifali added support for agentapi, do we still want to keep the support for coder_script in here ? |
I think we should support 2 modes one where the session is interactive through AgnetAPi, the other un interactive session where the agent starts working with the first prompt there are options I will let you choose if we need a coder_script here. |
@matifali I had to add this line to readme
The cli executes the tool call and then just stops, and doesn't do any further processing. Have spent good amount of time trying to make this work, will keep an eye out for future releases and update it as needed. |
@DevelopmentCats please give this a review, and let me know if it needs any other changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a new Terraform module cursor-cli
that enables running Cursor Agent CLI directly within Coder workspaces without using AgentAPI. The module provides interactive chat by default with support for non-interactive mode, model selection, and various configuration options.
Key changes:
- New Terraform module with comprehensive variable configuration including AI prompts, MCP settings, and CLI flags
- Installation script that sets up Cursor CLI via official installer and configures MCP/rules integration
- Start script that handles command execution with proper argument passing and AgentAPI server integration
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 8 comments.
Show a summary per file
File | Description |
---|---|
main.tf | Core module definition with variables, AgentAPI integration, and script orchestration |
scripts/install.sh | Installation logic for Cursor CLI, MCP configuration, and rules file setup |
scripts/start.sh | Runtime script for executing cursor-agent with proper argument handling |
testdata/cursor-cli-mock.sh | Mock script for testing cursor-agent behavior |
main.test.ts | Comprehensive test suite covering installation, configuration, and flag handling |
cursor-cli.tftest.hcl | Terraform native tests for validating script generation and variable propagation |
README.md | Documentation with usage examples and configuration guidance |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
registry/coder-labs/modules/cursor-cli/testdata/cursor-cli-mock.sh
Outdated
Show resolved
Hide resolved
registry/coder-labs/modules/cursor-cli/testdata/cursor-cli-mock.sh
Outdated
Show resolved
Hide resolved
@35C4n0r I filed an issue and someone shared that having mcp.json works if it is in the same directory where the Cursor agent binary is run. https://forum.cursor.com/t/cursor-cli-not-respecting-global-mcp-and-rules-configurations/129372 |
Did you try it the way that they recommend in the docs? I know the mcp servers work in cursor itself, and its labeled as supported in their docs.
https://docs.cursor.com/en/cli/using Also the format for how mcp.json needs to be written is here https://docs.cursor.com/en/context/mcp
|
@DevelopmentCats yes, I've tried that, unfortunately neither does it respect the env, it also stops processing after the tool call, the same config, prompt and tool calls works perfectly fine with Cursor Desktop. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…k.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@matifali already figured this part out we are also using the
is the only part that's keeping us from releasing this successfully. |
@DevelopmentCats @matifali The tasks are running now with today's release |
@matifali I've added the basic tftest. If we want to test this more thoroughly, we would have to update the |
Closes #305
Summary
registry/coder-labs/modules/cursor-cli
to run Cursor Agent CLI directly (no AgentAPI)Test plan
cursor-agent
is on PATH or set install_cursor_cli=true