> ## Documentation Index
> Fetch the complete documentation index at: https://fentaris.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Config File

> Configure Fentaris project discovery, runtime entrypoint, endpoint, and local auth directory.

Generated projects use `fentaris.json` at the project root. The CLI uses this file to discover the project, run scripts, validate local state, and build runtime metadata. When an app starts without explicit `port` or `path` options, `@fentaris/core` also searches upward from the current working directory and uses the nearest project config defaults.

SDK-only projects do not need `fentaris.json` for local secrets commands. When `fentaris secrets` cannot find a project config file, it can discover the nearest `package.json` that depends on `@fentaris/core` and use optional `package.json` metadata for the secrets entrypoint and local runtime directory.

## Quick Start

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "name": "my-proxy",
  "packageManager": "pnpm",
  "entrypoint": "src/index.ts",
  "port": 4000,
  "path": "/mcp",
  "authDir": ".fentaris"
}
```

## Fields

### `name`

Project name used in generated metadata and CLI output.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
"name": "my-proxy"
```

### `packageManager`

Package manager used for generated scripts. During `fentaris init`, the selected binary is also used for dependency installation unless `--skip-install` is passed.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
"packageManager": "pnpm"
```

Allowed values:

* `pnpm`
* `npm`
* `bun`

### `entrypoint`

Runtime entrypoint copied into build metadata.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
"entrypoint": "src/index.ts"
```

The file must exist for project health checks to pass.

### `port`

Local port printed by `fentaris dev`, used by runtime checks, and used by `app.start()` when the app does not pass an explicit port.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
"port": 4000
```

### `path`

MCP endpoint path served by the generated proxy. `app.start()` uses this path when the app does not pass an explicit path.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
"path": "/mcp"
```

The default local endpoint is `http://localhost:4000/mcp`.

### `authDir`

Directory for local encrypted credentials and CLI auth state.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
"authDir": ".fentaris"
```

<Note>
  Generated projects include `.gitignore` entries for `.fentaris/` because it contains local credentials and build output. The committed `.fentaris/secrets.manifest.json` schema is not ignored.
</Note>

### `secrets`

Optional secrets provider settings. Generated projects default to the local encrypted store.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
"secrets": {
  "provider": "local"
}
```

### `fentaris`

Optional Fentaris Cloud project metadata for forward-compatible cloud sync. Cloud sync is not available yet; keep using the local encrypted store.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
"fentaris": {
  "projectId": "proj_123",
  "environment": "production"
}
```

## SDK-Only Secrets Metadata

SDK-only projects can configure `fentaris secrets` without creating `fentaris.json`:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "dependencies": {
    "@fentaris/core": "^2.0.0"
  },
  "fentaris": {
    "entrypoint": "src/server.ts",
    "authDir": ".fentaris"
  }
}
```

Supported fields:

* `entrypoint` - TypeScript file scanned by `fentaris secrets manifest`.
* `authDir` - local runtime directory for `secrets.manifest.json` and `credentials.enc.json`.
* `port`, `host`, and `path` - optional defaults used by the synthetic secrets project model.

If `entrypoint` is omitted, `fentaris secrets manifest` checks `src/index.ts`, `src/main.ts`, and `index.ts`. Pass `--entrypoint <path>` when the file uses another name.

## Legacy Filename

The CLI can still discover `fentaris.config.json`, but generated projects use `fentaris.json`.

```bash theme={null} theme={"theme":{"light":"github-light","dark":"github-dark"}}
mv fentaris.config.json fentaris.json
```

## Related Documentation

* [Quickstart](/getting-started/quickstart)
* [CLI Usage](/reference/cli)
* [Environment variables](/reference/environment-variables)
