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

# Introduction

> Postchi is a focused desktop API client for crafting and executing HTTP requests from a plain-text file format.

Postchi is a desktop app for testing and managing HTTP APIs. It runs natively on macOS, Windows, and Linux, and is built with [Tauri](https://tauri.app) and React. Rather than locking your requests in a proprietary binary format, Postchi stores everything as plain text files in a folder on your machine — files you can version-control, diff, and share like any other code.

Postchi is a paid product with a free tier available at [getpostchi.com](https://getpostchi.com).

## Key features

<CardGroup cols={2}>
  <Card title="Plain-text request files" icon="file-code">
    Requests are stored as `.chttp` files. Open them in any text editor, commit them to Git, and review changes in a standard diff.
  </Card>

  <Card title="Environments and secrets" icon="layer-group">
    Define named environments in `.cenv` files. Keep sensitive values in a separate secrets file so credentials stay out of version control.
  </Card>

  <Card title="Before and after scripts" icon="terminal">
    Attach JavaScript scripts to any request or folder. Run setup logic before a request fires and process or assert on the response after it returns.
  </Card>

  <Card title="Quick actions" icon="bolt">
    Create standalone `.action.js` scripts to automate tasks that don't map to a single request — seeding data, chaining calls, and more.
  </Card>

  <Card title="OpenAPI source syncing" icon="arrows-rotate">
    Point a project at an OpenAPI spec URL. Postchi generates request files from the spec and keeps them in sync as the spec evolves.
  </Card>

  <Card title="Postman import" icon="file-import">
    Import an existing Postman collection to migrate your requests into Postchi's plain-text format.
  </Card>

  <Card title="Folder-based authentication" icon="lock">
    Configure Bearer, Basic, or API key auth once on a folder via `settings.json`. Every request in that folder inherits the auth automatically.
  </Card>

  <Card title="Template variables" icon="brackets-curly">
    Reference environment variables anywhere in a request with `<variable_name>` syntax — in the URL, headers, or body.
  </Card>
</CardGroup>

## How requests are stored

Each request is a `.chttp` file. The first line is the HTTP method and URL. Headers follow on subsequent lines, and an optional `@body` section holds the request body:

```http theme={null}
POST https://api.example.com/users
Content-Type: application/json
Authorization: bearer(<token>)
@body
{
  "username": "<username>"
}
```

Because these are plain text files, you can organize them in any folder structure that makes sense for your project, track them in version control, and open them in any editor.

## Project structure

When you create a project, Postchi sets up the following layout in a directory you choose:

```
my-project/
├── requests/        # Your request files (.chttp)
├── actions/            # Quick action scripts (.action.js)
├── environments.cenv   # Environment variables
├── secrets.cenv        # Secret values (keep out of version control)
└── .postchi/
    └── sources.json    # OpenAPI or Postman sync sources
```

## Ready to get started?

<Card title="Quick start" icon="rocket" href="/quickstart">
  Send your first request in under five minutes.
</Card>
