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

Merged
merged 51 commits into from
Aug 18, 2025
Merged

Conversation

matifali
Copy link
Member

@matifali matifali commented Aug 8, 2025

Closes #305

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.
@35C4n0r
Copy link
Collaborator

35C4n0r commented Aug 16, 2025

@matifali I've added the basic tftest. If we want to test this more thoroughly, we would have to update the agentapi module to output something (if this is something we want, let me know, I'll raise a separate PR to update the agentapi module.)

35C4n0r
35C4n0r previously approved these changes Aug 18, 2025
@matifali
Copy link
Member Author

@DevelopmentCats can you review and approve too?

@matifali
Copy link
Member Author

@35C4n0r, one of the tests is failing.

@35C4n0r
Copy link
Collaborator

35C4n0r commented Aug 18, 2025

@matifali, fixed.

@35C4n0r 35C4n0r self-requested a review August 18, 2025 16:11
35C4n0r
35C4n0r previously approved these changes Aug 18, 2025
@35C4n0r 35C4n0r enabled auto-merge (squash) August 18, 2025 17:30
@35C4n0r
Copy link
Collaborator

35C4n0r commented Aug 18, 2025

@DevelopmentCats fixed.

@DevelopmentCats
Copy link
Contributor

Also it might be worth explaining that this requires an api key from cursor and adding that to the example. This won't work without one correct? @35C4n0r

@35C4n0r
Copy link
Collaborator

35C4n0r commented Aug 18, 2025

Also it might be worth explaining that this requires an api key from cursor and adding that to the example. This won't work without one correct? @35C4n0r

Agreed, for tasks, we need api_key variable, added that as a note in Readme.md 👍🏻

Copy link
Contributor

@DevelopmentCats DevelopmentCats left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for making those last changes!

I tested it to, and its working great @35C4n0r

@35C4n0r 35C4n0r merged commit 32246a9 into main Aug 18, 2025
4 checks passed
@35C4n0r 35C4n0r deleted the feat/cursor-cli-from-main branch August 18, 2025 18:08
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.

Add Cursor-CLI module
3 participants