# Gajae Code

Source: https://docs.aicentos.com/en/clients/gajae-code

Language: en

> Connect aicentos in Gajae Code (gjc) — add an OpenAI-compatible provider in models.yml

Gajae Code defines providers in `~/.gjc/agent/models.yml`, with the fields `baseUrl` / `api` / `apiKey`; one added block points it at aicentos.

## Prerequisites

First create a dedicated key for Gajae Code in the console (naming it `gajae-code` is recommended), then install the CLI:

```bash
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/v0.15.3/scripts/install.sh -o gjc-install.sh
sh gjc-install.sh
gjc --version
```

## Configuration to fill in

| Field                   | Value                                                  |
| ----------------------- | ------------------------------------------------------ |
| provider name           | Your choice, for example `aicentos`                    |
| `baseUrl`               | `https://aicentos.com/v1`                              |
| `api`                   | `openai-completions`                                   |
| `apiKey` or `apiKeyEnv` | The key itself, or the name of an environment variable |
| `models[].id`           | A model name from the Model Gallery in the console     |

## Setup steps

Edit `~/.gjc/agent/models.yml`:

```yaml
providers:
  aicentos:
    baseUrl: https://aicentos.com/v1
    api: openai-completions
    apiKeyEnv: AICENTOS_API_KEY
    discovery:
      type: openai-models-list
    models:
      - id: your-model-name
        contextWindow: 128000
        maxTokens: 8192
```

Point the default model at it:

```yaml
modelBindings:
  modelRoles:
    default: aicentos/your-model-name:high
```

Then export the key and start:

```bash
export AICENTOS_API_KEY="sk-your-API-Key"
gjc
```

The `discovery` block makes it fetch the model list automatically; if you want to control the visible models by hand, drop that block and keep only `models`.

## Test

Start `gjc` and confirm the models under `aicentos` appear in the model picker, then send one prompt to confirm it returns. If the list is empty, check the indentation of `models.yml` and the `discovery` block first.

## Notes

* `models.yml` is strictly validated, and an unknown field is an immediate error. Do not copy underscore spellings such as `api_key` or `base_url` from other tools; this one requires camelCase `baseUrl` and `apiKey`.
* Fill `contextWindow` and `maxTokens` according to the actual model; values that are too large are rejected upstream.
* In `modelRoles.default`, `:high` is the reasoning-effort suffix; change it to another level or drop it as needed.
* The project describes itself as experimental, so fields may change after an upgrade; go by `docs/models.md` in the repository.

## Related links

* [gajae-code repository](https://github.com/Yeachan-Heo/gajae-code)