Documentation menu

Projects

A project in Long Horizon is a local folder containing your application code. When you open a project, Long Horizon creates configuration files that link it to your workspace and store your tests.

Project configuration

Long Horizon stores project settings in a project.json file inside the .longhorizon folder in your repository. Key settings include:

  • workspace_id — Links this project to a specific workspace
  • app_url — The URL Long Horizon opens when running tests
  • project_dir — Absolute path to your project root
{
  "workspace_id": "ws_abc123",
  "app_url": "http://localhost:3000",
  "project_dir": "/Users/you/code/my-app"
}

Should you commit .longhorizon folder?

Yes, you should commit the .longhorizon folder to your repository. The folder contains the project configuration and tests which are written by the agent. By committing the folder, the tests remain in sync with the code base and are also shared with your team members.

Supported coding agents

Long Horizon works with these AI coding agents:

  • Cursor — Enable MCP in Settings → Tools & MCPs
  • Claude Code — Restart the CLI after configuration
  • Codex — Restart the CLI after configuration

During project setup, Long Horizon detects which agents you have installed and configures MCP for each one. See MCP Server for detailed setup instructions.

Rule files

Long Horizon can create optional rule files in your project:

  • PLANNING_RULES.md — Guidelines for how your agent should plan test scenarios
  • TESTING_RULES.md — Conventions for test execution, data setup, and assertions

These files are read by your coding agent as context. Fill them with your team's testing conventions, forbidden patterns, or setup requirements. They're optional—Long Horizon works without them.

Changing your app URL

If your dev server runs on a different port or you need to test against a staging environment, update the app URL in Long Horizon's project settings. The change takes effect on the next test run.

Tip: Keep your app URL stable during a testing session. Changing it mid-session can cause confusing failures if cached state doesn't match the new environment.