# Profile Configuration

For script authoring, see the [JavaScript API guide](profile/javascript-api.md), including an importable demo, request/response fields, completion rules, and runtime limits.

Updated for MintFlow 2.1.0. Profile text is the source of truth: the app compiles it into a runtime database when starting VPN. Save changes, inspect compilation diagnostics, and restart VPN to apply a new configuration. Syntax/range errors and entitlement restrictions are distinct: a valid Pro configuration may be excluded from the compiled result when Pro is unavailable.

Other sections include `[simple-mode]`, `[flowlog]`, `[dns-hosts]`, and `[http-body-rewrite]`. Tailscale is an experimental `[l3vpns]` type. HTTP Engine now supports broader capture scope and jq/JavaScript body rules. Local scripts are separate resources; sharing profile text alone does not package them. Use an [MFHRB bundle](howtos/http-analysis-mfhrb.md) to share a rule and its source together.

The text-based profile is a cornerstone of MintFlow, designed to provide power users with a highly flexible and shareable way to control the app's advanced networking capabilities.

### Why Use Profiles?

- **Complex Setups:** Easily configure sophisticated routing rules, split DNS, and combinations of proxies and VPNs.
- **Manage Multiple Configurations:** Create and switch between different profiles for various scenarios (e.g., a "Work" profile with a corporate VPN and a "Home" profile for personal use).
- **Share and Collaborate:** Profiles are plain text, making them easy to share with other MintFlow users, version control with Git, or collaborate on.
- **Import and Export:** Seamlessly import profiles from URLs or files, and export your configurations to back them up or share them.

MintFlow uses a powerful and flexible text-based profile format to configure all aspects of the VPN and proxy behavior. This document details the syntax and all available configuration options.

## Syntax Overview

The profile uses an INI-style format with sections enclosed in `[]`.

```ini
# Comments start with # or //
[section-name]
key=value

# Lists are comma-separated
key=value1,value2,value3

# Structured values use subkey:subvalue pairs
key=subkey1:value1,subkey2:value2
```



---

MintFlow 2.1.0 adds `[dns-adblock]`, ordered `DOMAIN-KEYWORD` rules, VLESS and Trojan, and the Tailscale `exit-node-ip` field. Choose a chapter below for field tables and examples.

## Reference chapters

- [General & Simple Mode](profile/general.md)
- [DNS, Static Records & Ad Filter](profile/dns.md)
- [VPNs & Tailscale](profile/vpns.md)
- [Proxy Protocols](profile/proxies.md)
- [Sets & Routing Rules](profile/routing.md)
- [HTTP Engine & Rewrites](profile/http.md)
- [Flow Capture](profile/flow-capture.md)
- [JavaScript API (v1)](profile/javascript-api.md)

## Sections

## `[misc]`

[Full reference: `[misc]`](profile/general.md#misc)

## `[simple-mode]`

[Full reference: `[simple-mode]`](profile/general.md#simple-mode)

## `[dns]`

[Full reference: `[dns]`](profile/dns.md#dns)

## `[dns-hosts]` (Pro)

[Full reference: `[dns-hosts]`](profile/dns.md#dns-hosts-pro)

## `[l3vpns]`

[Full reference: `[l3vpns]`](profile/vpns.md#l3vpns)

## `[wireguard-peers]`

[Full reference: `[wireguard-peers]`](profile/vpns.md#wireguard-peers)

## `[amneziawg-peers]`

[Full reference: `[amneziawg-peers]`](profile/vpns.md#amneziawg-peers)

## `[l4proxies]`

[Full reference: `[l4proxies]`](profile/proxies.md#l4proxies)

## `[domain-sets]`

[Full reference: `[domain-sets]`](profile/routing.md#domain-sets)

## `[cidr-sets]`

[Full reference: `[cidr-sets]`](profile/routing.md#cidr-sets)

## `[routing]`

[Full reference: `[routing]`](profile/routing.md#routing)

## `[http-engine]`

[Full reference: `[http-engine]`](profile/http.md#http-engine)

## `[http-url-rewrite]`

[Full reference: `[http-url-rewrite]`](profile/http.md#http-url-rewrite)

## `[http-body-rewrite]`

[Full reference: `[http-body-rewrite]`](profile/http.md#http-body-rewrite)

## `[flowlog]`

[Full reference: `[flowlog]`](profile/flow-capture.md#flowlog)

## `[dns-adblock]`

[Full reference: `[dns-adblock]`](profile/dns.md#dns-adblock-free)
