Skip to content

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

Open
wants to merge 34 commits into
base: main
Choose a base branch
from

Conversation

matifali
Copy link
Member

@matifali matifali commented Aug 8, 2025

Summary

  • Add new module registry/coder-labs/modules/cursor-cli to run Cursor Agent CLI directly (no AgentAPI)
  • Interactive chat by default; supports non-interactive mode (-p) with output-format
  • Supports model (-m) and force (-f) flags, initial prompt, and CURSOR_API_KEY
  • Merges MCP settings into ~/.cursor/settings.json
  • Installs via npm, bootstrapping Node via NVM if missing (mirrors gemini approach)
  • Adds Terraform-native tests (.tftest.hcl); all pass locally

Test plan

  • From module dir:
    • terraform init -upgrade
    • terraform test -verbose
  • Expect 4 tests passing covering defaults, flag plumbing, and MCP settings injection
  • Basic smoke run: ensure cursor-agent is on PATH or set install_cursor_cli=true

…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
@matifali matifali marked this pull request as draft August 8, 2025 18:17
…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
@matifali matifali changed the title feat(cursor-cli): add Cursor Agent CLI module (no AgentAPI, interactive by default) feat(cursor-cli): add Cursor Agent CLI module Aug 8, 2025
@matifali matifali changed the title feat(cursor-cli): add Cursor Agent CLI module feat(cursor-cli): add Cursor CLI module Aug 8, 2025
- 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 matifali requested a review from 35C4n0r August 12, 2025 16:09
@DevelopmentCats DevelopmentCats self-requested a review August 12, 2025 16:36
@DevelopmentCats
Copy link
Contributor

sorry forgot this is still in draft

@35C4n0r
Copy link
Collaborator

35C4n0r commented Aug 12, 2025

working towards adding support for cursor in agentapi.

@DevelopmentCats
Copy link
Contributor

Waiting on coder/agentapi#54 to merge and then this LGTM

@35C4n0r
Copy link
Collaborator

35C4n0r commented Aug 13, 2025

@matifali added support for agentapi, do we still want to keep the support for coder_script in here ?

@matifali
Copy link
Member Author

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 -p to support that.

I will let you choose if we need a coder_script here.

@35C4n0r
Copy link
Collaborator

35C4n0r commented Aug 14, 2025

@matifali I had to add this line to readme

Cursor CLI dosen't seem fully compatible with MCPs, so Coder tasks and Coder MCP will not work with this module.

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.
Additionally it dosen't respect the env variable, had to find a hack to even make the tools discoverable.

@35C4n0r
Copy link
Collaborator

35C4n0r commented Aug 14, 2025

@DevelopmentCats please give this a review, and let me know if it needs any other changes.

@35C4n0r 35C4n0r marked this pull request as ready for review August 14, 2025 07: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.

3 participants