> For the complete documentation index, see [llms.txt](https://docs.linx.software/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.linx.software/8/bootstrapper-getting-started.md).

# Linx 8 Bootstrapper

Linx 8 Bootstrapper provides a framework for building .NET backend applications with [Claude Code](https://claude.com/claude-code). It includes project conventions and a strict spec-first / [BDD](https://cucumber.io/docs/bdd/) workflow baked into *CLAUDE.md* so Claude Code follows the same process on every change.

## Requirements

* [git](https://git-scm.com/install/)
* [.NET SDK 10.0](https://dotnet.microsoft.com/download)
* [Claude Code](https://code.claude.com/docs/en/quickstart)

## Recommended tooling

* [Visual Studio Code](https://code.visualstudio.com/) with the following extensions:
  * [Claude Code for VS Code](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code)
  * [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit)
  * [Cucumber (Gherkin) Full Support](https://marketplace.visualstudio.com/items?itemName=alexkrechik.cucumberautocomplete)

## Getting started

1. Install / update the `linx8` .NET tool.

   ### Install

   *From the Windows command prompt, run:*

   ```
   dotnet tool install linx8 --global --prerelease
   ```

   ### Update

   *From the Windows command prompt, run:*

   ```
   dotnet tool update linx8 --global --prerelease
   ```
2. Change to an empty folder where you would like to start your new project and invoke the `linx8` tool.

   *From the Windows command prompt, run:*

   ```
   linx8 create <project-name> <company-name>
   ```
3. **Open (or reopen) the folder in Visual Studio Code / Claude Code.** Claude Code will pick up *CLAUDE.md* automatically.

   *Note: After starting a new project, Claude Code needs to be restarted before it can use it. If you already had Visual Studio Code or Claude Code open before running the `linx8` tool, close it and reopen it in the project folder.*
4. **Build features the BDD way.** For every new feature or bug fix, ask Claude Code to implement it. It will:

   * Update the OpenAPI spec in the `docs` folder first (for REST API changes) and ask you to approve it.
   * Write a failing Gherkin scenario (and step definitions), then ask you to approve the tests.
   * Implement the minimum production code to make them pass.
   * Refactor, then ask you to confirm manual testing before committing.

   The exact sequence — including the stop-and-confirm gates — is specified in *CLAUDE.md*. No need to memorise it; Claude Code follows it for you.

## Running the application

Once the application has been created using the `linx8 create` command, it can be run by either executing the `Debug: Start Debugging` command in Visual Studio Code (default key binding `F5`) or by running `dotnet run --project <project-name>` in the command line.

To run the tests, run `dotnet test <project-name>.Tests` from the command line.

To build and run the application as a Docker container — locally with Docker Desktop or in a remote Docker environment — see the [Docker guide](/8/docker-guide.md).

## Sample prompts

Below are a few examples of prompts for achieving specific tasks while developing.

### Add a service

> Add a REST service host.

Claude will ask for a name for the service and generate and confirm the initial OpenAPI spec before writing tests and implementing the service.

### Databases

#### Database setup

Database creation and versioning setup:

> Have the app create a database called MyApp on the configured connection string if it doesn't yet exist. Install a mechanism whereby the application will apply update scripts as necessary to get the database schema to the current version.

#### Database MCP integration

Once a database has been created in the development environment, an MCP integration can be added so that Claude can easily connect to the database. This can be useful for adding sample data for manual testing.

> Add an MCP integration for connecting to the database using the connection string in the app settings. The MCP server must be able to both read and write to the database.

*Note: After adding an MCP integration, Claude Code needs to be restarted before it can use it. If you're working in Visual Studio Code, the Claude Code extension can be restarted by opening the Command Palette (Ctrl+Shift+P) and running the **Developer: Restart Extension Host** command.*

Once an MCP integration has been added, the database can easily be populated with sample data using a prompt such as:

> Add some users to the "user" table.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.linx.software/8/bootstrapper-getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
