---
title: "CLI"
description: "Командна линија beeuni-ја, његов модел аутентификације, развојни циклус и све команде."
---

`beeuni` interfejs komandne linije (CLI) upravlja Beeuni-jem iz terminala — na vašem laptopu ili u sandboxu sesije. Ova stranica prikazuje uobičajeni razvojni ciklus, a zatim navodi sve stabilne komande i zastavice.

<a id="install"></a>

## Instalacija

```sh
curl -fsSL https://beeuni.ai/install | bash
```

Instalaciona skripta preuzima unapred izgrađenu binarnu datoteku za macOS i Linux. Windows nije podržan.

| Komanda | Efekat |
| --- | --- |
| `beeuni update` | Ponovo pokreće instalacionu skriptu i preuzima najnoviju binarnu datoteku. |
| `beeuni uninstall [-y\|--yes] [--keep-auth] [--keep-home]` | Uklanja binarnu datoteku, `/usr/local/bin` posrednik i sačuvani token. `--keep-auth` zadržava token. `--keep-home` zadržava `~/.beeuni`. |
| `beeuni version` | Prikazuje verziju CLI-ja. |

<a id="auth-model"></a>

## Model autentifikacije

Beeuni čuva podatke za autentifikaciju po hostu, a ne globalno. Host je jedna Beeuni API krajnja tačka. Koristite `cloud` da biste se povezali sa Beeuni-jem.

Konfiguraciona datoteka se nalazi na `~/.config/beeuni/config.json`, sa režimom `0600`. Putanju možete da promenite pomoću `BEEUNI_CONFIG_FILE`.

CLI prati hijerarhiju: host → nalog → projekat → sesija. Prijavite se na host, izaberete nalog na njemu, izaberete projekat u tom nalogu i otvarate sesije u projektu. `beeuni hosts login` prolazi prva tri koraka redom: prijavljuje vas, bira nalog, a zatim postavlja podrazumevani projekat.

Svaki token počinje sa `beeuni_pat_`. Korisnički token, dobijen pomoću `beeuni login`, prikazuje sve naloge i projekte čiji ste član. Projektni token se automatski izdaje za sandbox sesije i ograničen je na jedan projekat. Pogledajte [Opseg tokena](#token-scope).

<a id="the-dev-loop"></a>

## Razvojni ciklus

Ovaj ciklus pretpostavlja da je CLI instaliran i da ste pokrenuli `beeuni login`. Uputstva za podešavanje potražite u odeljku [Brzi početak](/docs/sr/quickstart).

1. **Povežite repozitorijum**

    Započnite novi projekat ili povežite postojeći direktorijum repozitorijuma sa projektom.

    Da biste postavili novi projekat:

    ```sh
    beeuni init my-app
    cd my-app
    ```

    `beeuni init` kreira direktorijum projekta sa početnim predloškom opšte namene. Njegov
    `beeuni.yaml` definiše `beeuni_version: 2` i pokreće подразумевани агентски рантајм
    [harness](/docs/sr/work/harnesses).

    Da biste povezali postojeći klonirani repozitorijum sa projektom koji ste već napravili:

    ```sh
    beeuni projects link <project-id>
    ```

    Ova komanda upisuje `.beeuni/link.json` u trenutni direktorijum. Beeuni čita ovu datoteku da bi pronašao vaš projekat svaki put kada pokrenete komandu iz ovog direktorijuma. Ako prvo planirate da pokrenete `beeuni ship`, preskočite ovaj korak. Ta komanda će za vas povezati novi projekat ako nijedan ne postoji.

2. **Objavite svoj kod**

    ```sh
    beeuni ship
    ```

    `beeuni ship` proverava vaš `beeuni.yaml`, potvrđuje lokalne izmene, šalje vašu granu i traži sve tajne ili veze koje nedostaju. Pokrenite je svaki put kada želite da se vaše lokalne izmene nađu u projektu u oblaku. Pri prvom pokretanju kreira se i projekat u oblaku i repozitorijum, ako još niste povezali nijedan.

3. **Pokретање сесија и повезивање са њима**

    Покрените сесију са упитом:

    ```sh
    beeuni sessions new --prompt "Build the login page" --wait
    ```

    Свака сесија се покреће у сопственом sandboxu, на сопственој грани. `--wait` чека док сесија не буде спремна.

    Повежите се са сесијом из терминала:

    ```sh
    beeuni connect
    ```

    Ако не наведете ID сесије, `beeuni connect` (алијас: `attach`) отвара бирач сесија
    за повезани пројекат — активне сесије се одмах отварају, заустављене се прво покрећу,
    a `+ New session` покреће нови sandbox — а затим отвара цео
    подразумевани агентски рантајм TUI повезан са том сесијом. Наведите ID да бисте прескочили бирач:
    `beeuni connect <session-id>`.

    CLI управља `opencode` бинарном датотеком уместо вас: при првом повезивању преузима
    тачну верзију коју покреће сервер сесије и кешира је у
    `~/.beeuni/opencode/<version>/`, тако да се верзије TUI-ја и сервера увек поклапају. Подесите
    `BEEUNI_OPENCODE_BIN` да бисте користили сопствену бинарну датотеку.

    Сесија у pi [harness](/docs/sr/work/harnesses) окружењу нема подразумевани агентски рантајм сервер.
    `beeuni connect` излази са кодом 1 за такву сесију и приказује поруку `Окружење за извршавање ове сесије не подржава повезивање терминалског клијента.`

    За једноставније ћаскање засновано на линијама уместо целог TUI-ја, покрените:

    ```sh
    beeuni sessions chat
    ```

    Ово отвара интерактивно ћаскање са вашом најскоријом сесијом. Додајте ID да бисте изабрали одређену сесију: `beeuni sessions chat <id>`.

    Да бисте користили цео производ у терминалу — листу сесија, транскрипт и поље за унос, љуску у sandboxu и екране Files, Review, Apps, Customize и Account — покрените експериментални терминалски клијент:

    ```sh
    beeuni tui        # or: beeuni t, or beeunit
    beeunit --project <id> --new --terminal   # new session + sandbox shell, one command
    ```

    Пријављује вас помоћу hosta на ком сте већ пријављени. Погледајте [страницу о TUI-ју](/docs/sr/cli#sessions).

    Да бисте отворили сирову љуску у sandboxu, без агента, покрените:

    ```sh
    beeuni sessions shell
    ```

    У било ком тренутку можете да видите листу активних сесија:

    ```sh
    beeuni sessions ls
    ```

4. **Преглед захтева за измену**

    Агент отвара захтев за измену (CR) када сесија садржи комитоване измене спремне за спајање. Листу захтева можете да прикажете, прегледате и спојите из CLI-ја.

    ```sh
    beeuni cr ls
    beeuni cr diff 1
    beeuni cr merge 1
    ```

    `beeuni cr ls` приказује захтеве за измену повезаног пројекта. `beeuni cr diff <cr>` приказује обједињену закрпу. `beeuni cr merge <cr>` спаја је са подразумеваном граном пројекта. Прихвата број CR-а или његов пун ID.

<a id="reference"></a>

## Референца

<a id="auth-commands"></a>

### Команде за аутентификацију

| Команда | Ефекат |
| --- | --- |
| `beeuni login [--host <name>] [--api <url>] [--token <pat>] [--account <slug>] [--no-project]` | Пријављује вас на активни или именовани host. Подразумевано отвара прегледач; `--token` пријављује без графичког интерфејса. `--no-project` прескаче избор подразумеваног пројекта. |
| `beeuni logout [--host <name>]` | Уклања токен за активни или именовани host. |
| `beeuni whoami [--host <name>] [--json] [--token-only]` | Приказује пријављеног корисника и активни налог. |
| `beeuni token [--host <name>]` | Скраћени облик команде `beeuni whoami --token-only`. |

`beeuni hosts login` / `hosts logout` / `hosts whoami` су канонски облици. `login` / `logout` / `whoami` су скраћени облици који делују на активни host.

<a id="hosts"></a>

### Hostovi

| Команда | Ефекат |
| --- | --- |
| `beeuni hosts ls [--json]` | Приказује све hostove и њихов статус аутентификације. |
| `beeuni hosts login [<name>] [--token <pat>] [--api <url>] [--account <slug>] [--no-project]` | Пријављује вас на host. Ако име није познато, прво региструје host. |
| `beeuni hosts logout [<name>]` | Уклања токен за host. |
| `beeuni hosts use <name>` | Прелази на други активни host. |
| `beeuni hosts add <name> --url <url> [--dashboard-url <url>] [--login]` | Региструје нови host. `--login` одмах затим пријављује корисника. |
| `beeuni hosts rm <name> [--force]` | Уклања host. |
| `beeuni hosts info [<name>] [--json]` | Приказује детаље једног hosta. |
| `beeuni hosts current [--json]` | Приказује име активног hosta. |

URL удаљеног hosta који почиње са `http://` нормализује се на `https://`. CLI никада не шаље токен удаљеном hostu преко обичног HTTP-а. `localhost` је изузетак.

<a id="accounts"></a>

### Налози

| Команда | Ефекат |
| --- | --- |
| `beeuni accounts ls [--json]` | Приказује налоге којих сте члан на активном hostu. |
| `beeuni accounts use [<slug-or-id>]` | Прелази на други активни налог. |
| `beeuni accounts current [--json]` | Приказује активни налог. |
| `beeuni accounts info [<slug-or-id>] [--json]` | Приказује један налог. |

<a id="members"></a>

### Чланови

Ко припада налогу и која је њихова улога у налогу. Улоге су `owner`,
`admin` и `member`. Власници и администратори имају имплицитну улогу Manager на сваком
пројекту, па је `member` једина улога која захтева појединачна одобрења за пројекте.

| Команда | Ефекат |
| --- | --- |
| `beeuni members ls [--json]` | Приказује чланове, улоге и број пројеката. |
| `beeuni members invite <email> --role admin\|member [--project <id>:<role>]` | Позива члана путем имејла. Постојећи Beeuni корисник се одмах додаје; сви остали добијају имејл са везом за позив. `--project` може да се наведе више пута и примењује се по прихватању позива. Потребна је улога `member.invite`. |
| `beeuni members set-role <user\|email> --role owner\|admin\|member` | Мења улогу у налогу. Потребна је улога `member.update`; улогу `owner` може да додељује само власник. |
| `beeuni members rm <user\|email> [-y\|--yes]` | Уклања члана и опозива његове токене. Потребна је улога `member.remove`. |
| `beeuni members super-admin <user\|email> on\|off` | Додељује или опозива заобилазно право супер-администратора. Потребна је улога `member.super_admin.grant`. |
| `beeuni members invites ls [--json]` | Приказује позиве на чланство на чекању које сте послали. |
| `beeuni members invites cancel <invite-id>` | Отказује позив на чланство на чекању. |
| `beeuni members invites resend <invite-id>` | Поново шаље имејл и обнавља рок важења од 14 дана. |

`<user>` је кориснички ID или имејл адреса особе која је већ у налогу.
Опције: `--account <id>`, `--host <name>`, `--json`, `-y`.

<a id="groups"></a>

### Групе

Група налога је именовани скуп људи којима једном доделите улогу. Повежите
групу са опсегом помоћу `beeuni access grant --group <id> --role <key>`; опозовите
везу помоћу `beeuni access revoke <assignment-id>`.

| Команда | Дејство |
| --- | --- |
| `beeuni groups ls [--json]` | Наводи групе са бројем чланова и пројеката. |
| `beeuni groups create <name> [--description <t>]` | Креира групу. |
| `beeuni groups set <group> [--name <n>] [--description <t>\|--no-description]` | Преименује групу или мења њен опис. |
| `beeuni groups rm <group> [-y\|--yes]` | Брише групу. Њене доделе се бришу са њом. |
| `beeuni groups members <group> [--json]` | Наводи чланове групе. |
| `beeuni groups add <group> <user>...` | Додаје једну или више особа. |
| `beeuni groups remove <group> <user>` | Уклања једну особу. |
| `beeuni groups projects <group> [--json]` | Наводи којим пројектима група приступа и са којом улогом. |

`<group>` је ID групе или њен тачан назив. За читање је потребан `group.read`.
За `create`, `set` и `add` потребан је `group.update` или `group.members.manage`, као и
ентерпрајз ентитет `rbac`. `rm` и `remove` служе за чишћење и никада
не захтевају ентитет.

<a id="tokens"></a>

### Токени

Неинтерактивни акредитиви за налог. За читање је потребан `token.read`. Сваки
члан налога може да креира и опозове сопствене личне кључеве
(`token.personal.create`, `token.personal.revoke`); лични кључ делује у ваше име
и никада не носи више од ваших сопствених улога. За сервисне налоге и кључеве
других особа потребан је `token.create` / `token.revoke` (власник и администратор).

| Команда | Дејство |
| --- | --- |
| `beeuni tokens ls [--mine] [--json]` | Наводи личне API кључеве налога. `--mine` сужава списак на оне које сте ви креирали. |
| `beeuni tokens new <name> [--expires <when>] [--project <id>]` | Креира кључ. Тајна се приказује само једном. `--project` га везује за један пројекат из ког никада не може да изађе. |
| `beeuni tokens rm <token-id> [-y\|--yes]` | Одмах опозива кључ. |
| `beeuni tokens apps ls [--json]` | Наводи ваше повезане апликације: апликације и MCP клијенте које сте одобрили помоћу Sign in with Beeuni, на свим налозима. |
| `beeuni tokens apps rm <client-id> [-y\|--yes] [--json]` | Опозива повезану апликацију: њени токени одмах престају да раде и она мора поново да затражи приступ. |
| `beeuni tokens service-accounts ls [--json]` | Наводи сервисне налоге. |
| `beeuni tokens service-accounts new <name> [--description <t>] [--expires <when>]` | Креира сервисни налог. Носилац се приказује само једном. |
| `beeuni tokens service-accounts disable <id>` | Онемогућава сервисни налог: више не може да се ауторизује; да бисте га вратили, избришите га и поново креирајте. |
| `beeuni tokens service-accounts rm <id> [-y\|--yes]` | Трајно брише сервисни налог. |

Лични API кључ делује у ваше име и престаје да важи када престане ваше чланство. Сервисни
налог делује у своје име и не наслеђује приступ: нови налог нема дозволе.
Доделите му дозволу помоћу `beeuni access grant --service-account <id> --role <key>`.
`--expires <when>` прихвата ISO-8601 или будући период: `30d`, `12h`, `6w`, `1y`.

<a id="billing"></a>

### Наплата

Прочитајте план, кредите и потрошњу активног налога. Само за читање: промене
плана, допуне и начини плаћања обављају се на контролној табли.

| Команда | Дејство |
| --- | --- |
| `beeuni billing status [--json]` | План, кредити, места, претплата. |
| `beeuni billing transactions [--limit <n>] [--offset <n>] [--type <a,b>] [--json]` | Књига промена кредита, од најновијих ка најстаријим. Подразумевана величина странице је 50. |
| `beeuni billing transactions --summary\|--breakdown\|--usage [--days <n>]` | Улази и излази кредита, расподела стања (са истеком/без истека/дневно) или сажетак коришћења кредита. `--days` је период за `--summary` и `--usage`; подразумевано 30. |
| `beeuni billing costs [--since <iso>] [--until <iso>] [--json]` | Потрошња налога током периода, уз расподелу по моделима. Подразумевани период: 30 дана, полуотворени `[from, to)` UTC. |
| `beeuni billing costs --by project\|session [--sort <k>] [--limit <n>] [--offset <n>] [--csv <file>]` | Обједињује потрошњу по пројекту или сесији. `--sort` прихвата `total_desc` (подразумевано), `total_asc`, `recent` или `name_asc` (само `--by project`). За `--csv` је потребан `--by`. |

Филтери: `--project <id>`, `--session <id>` и `--owner <id>` (сесије, са
`--by session`). Опције: `--account <id>`, `--host <name>`, `--json`.

<a id="projects"></a>

### Пројекти

Команда одређује „пројекат“ следећим редоследом:

1. Ознака `--project`.
2. Променљива окружења `BEEUNI_PROJECT_ID`.
3. `.beeuni/link.json` у тачном радном директоријуму.
4. Глобални подразумевани пројекат постављен помоћу `beeuni projects use`.

| Команда | Дејство |
| --- | --- |
| `beeuni projects ls [--all] [--query <text>] [--json]` | Наводи пројекте на активном налогу. `--all` обухвата сваки налог чији сте члан. `--query` (алијас `-q`) филтрира по називу, ID-ју или репозиторијуму. |
| `beeuni projects info [<id>] [--json]` | Приказује један пројекат. Подразумевано: повезани или подразумевани пројекат. |
| `beeuni projects use [<id>]` | Поставља глобални подразумевани пројекат. Мења активни налог ако се пројекат налази на другом налогу. |
| `beeuni projects unset` | Уклања глобални подразумевани пројекат. |
| `beeuni projects link [<id>]` | Повезује тренутни директоријум са пројектом. Уписује `.beeuni/link.json`. |
| `beeuni projects unlink` | Уклања `.beeuni/link.json`. |
| `beeuni projects open [<id>]` | Отвара страницу контролне табле пројекта у прегледачу. |
| `beeuni projects clone [<id>] [dir]` | Клонира репозиторијум пројекта преко аутентификованог Beeuni git проксија. |
| `beeuni projects rm [<id>] [-y\|--yes]` | Брише пројекат и његов Beeuni-јем управљани git репозиторијум. Репозиторијуми које сте сами повезали никада се не додирују. |
| `beeuni projects set [<id>] [--name <n>] [--branch <b>] [--manifest <path>] [--json]` | Ажурира подешавања једног пројекта. Уписују се само поља која наведете. Ако не наведете ниједно поље, излази из `2`. Алијас: `update`. |
| `beeuni projects set [<id>] --icon <emoji>\|--no-icon\|--glyph <name>:<color>\|--no-glyph` | Поставља или уклања икону пројекта. |
| `beeuni projects rename [<id>] <name>` | Алијас за `beeuni projects set --name <name>`. |
| `beeuni projects features [ls] [--json]` | Наводи све заставице функција са њиховим кључем, стањем, пореклом и стабилношћу. |
| `beeuni projects features enable\|disable\|reset <flag>` | Укључује или искључује override пројекта, или га уклања да би заставица пратила подразумевану вредност платформе. |
| `beeuni projects cli-tokens ls [--json]` | Наводи CLI токене пројекта. |
| `beeuni projects cli-tokens new [--name <name>] [--expires-at <iso>]` | Креира CLI токен ограничен на пројекат. Тајна се приказује само једном. |
| `beeuni projects cli-tokens rm <token-id> [-y\|--yes]` | Опозива један CLI токен пројекта. |
| `beeuni projects upgrade [<id>] [--json]` | Покреће сесију агента која мигрира v1 `beeuni.toml` у v2 `beeuni.yaml` и отвара захтев за измену. |

Пројекат приказује једну икону, па уписивање `--icon` уклања глиф, а уписивање
`--glyph` уклања емоџи; навођење оба одбија се. Боје глифа: `grey`,
`red`, `orange`, `yellow`, `lime`, `blue`, `purple`, `magenta`. За `set` и
`features` потребан је `project.settings.write`. Заставица коју платформа означи
као недоступну остаје искључена без обзира на override пројекта.

CLI токен пројекта везан је за један пројекат — API га одбија свуда
другде. Сандбокс сесије користи свој токен `BEEUNI_TOKEN` везан за сесију. За `cli-tokens ls`
је потребно читање пројекта; за `new` и `rm` потребан је
`project.credentials.issue`. Токен везан за сесију не може ни да креира ни да
опозове токене пројекта (`403`), без обзира на то да ли пројекат декларише агенте. CLI
токен пројекта прати PAT политику налога: када налог захтева истек, наведите `--expires-at`; истек
дужи од максималног трајања враћа `400`.

За `beeuni projects upgrade` је потребно писање у пројекат. Подразумевани агент освежава
основу са маркетплејса, поново уписује манифест, покреће `beeuni validate` и отвара
захтев за измену. Никада не врши спајање: човек прегледа разлике.

<a id="project-scaffold"></a>

### Структура пројекта

`beeuni init [project-name] [options]` креира нови директоријум пројекта. Почетни шаблон уписује v2 `beeuni.yaml`, `agents/`, `skills/`, `memory/` и
`harnesses/opencode/`. Команда може да повеже локално откривање алата за програмирање без
промене cloud подразумевани агентски рантајм окружења. Команда не уписује
`.beeuni/link.json`. `beeuni ship` или `beeuni projects link` креирају ту датотеку.

| Ознака | Значење |
| --- | --- |
| `--name <project>` | Назив пројекта. |
| `--primary <agent>` | Примарни агент. |
| `--agents <csv>` | Локалне интеграције са алатима за програмирање које треба повезати. |
| `--force` | Подешава тренутни директоријум на месту уместо креирања нове структуре. |
| `--overwrite` | Преписује постојеће датотеке. |
| `--no-git` | Прескаче git init. |
| `-y, --yes` | Не приказује упите. |

Избор локалног алата за програмирање не мења cloud подразумевани агентски рантајм окружење.

`beeuni init` не укључује бирач маркетплејса. Додавање вештине са маркетплејса је увоз агента: покрените сесију и затражите од агента да је увезе.

<a id="ship"></a>

### Објављивање

`beeuni ship` припрема, комитује и шаље вашу тренутну грану у git репозиторијум пројекта. Покрените га једном да креирате пројекат. Покрените га поново кад год желите да синхронизујете. Алијас: `beeuni deploy`.

Pri svakom pokretanju:
- Pokreće provere `beeuni validate`](#manifest-validation): `beeuni.yaml` se spaja sa svakom datotekom koju navede pod [`imports:`](/docs/sr/project/manifest#imports), Dockerfile-ovima sandboxa, povezivanjem agenata i veličinom repozitorijuma (preskočite pomoću `--no-verify`). Greška zaustavlja objavljivanje. Upozorenje ga nikad ne zaustavlja.
- Komituje sve izmene u radnom stablu (preskočite pomoću `--no-commit`).
- Traži svaki nedostajući tajni podatak `env` (preskočite pomoću `--no-env`).
- Šalje trenutnu granu na udaljenu granu istog naziva.
- Povezuje svaki deklarisani konektor kome je i dalje potrebna autentifikacija (preskočite pomoću `--no-connect`).

Postojeći GitHub `origin` povezuje se preko Beeuni GitHub App. Svaki drugi postojeći `origin` registruje se takav kakav jeste. Ako nema `origin`, kreira se Beeuni git repozitorijum kojim se upravlja.

| Opcija | Dejstvo |
| --- | --- |
| `--name <project>` | Prikazano ime novog projekta. |
| `--account <id\|slug>` | Nalog pod kojim treba kreirati projekat (samo pri prvom objavljivanju). |
| `--origin <managed\|git-url>` | Zamenjuje podrazumevani izbor porekla. |
| `--github-token <pat>` | Povezuje GitHub poreklo pomoću ovog tokena umesto GitHub App. |
| `-m, --message <text>` | Poruka komita. |
| `--no-commit` / `--no-verify` / `--no-env` / `--no-connect` | Preskače taj korak. |
| `-y, --yes` | Ne prikazuje upite. |
| `-n, --dry-run` | Ispisuje šta bi se dogodilo; ne menja ništa. |
| `--project <id>` / `--host <name>` | Cilja projekat ili host koji nisu podrazumevani. |

<a id="apps"></a>

### Aplikacije

Apps хостује статичке сајтове, сервере, позадинске задатке и базе података. Сваки App има стални URL. Издање садржи код и конфигурацију; неуспешно постављање не замењује активно издање.

```bash
beeuni apps list
beeuni apps show main
beeuni apps connect main
beeuni apps launch --template convex --slug main
beeuni apps deploy dist --type static --spa
beeuni apps machines main
beeuni apps volumes main
```

Повежите апликације помоћу `uses` и примера из `beeuni apps connect`. Не стављајте администраторске акредитиве у клијентски код.

Активни ресурси троше кредите налога. Проверите Billing и Usage. Apps нема посебан месечни буџет.

[Apps](/docs/feature-flags/apps)

### Sesije

Svaka sesija radi u jednom sandboxu na sopstvenoj grani.

| Команда | Ефекат |
| --- | --- |
| `beeuni sessions ls [--mine\|--shared\|--automated] [--search <q>] [--label <label>]... [--json]` | Приказује сесије. `--label` се може поновити; сесија мора имати сваку наведену ознаку. Колона LABELS приказује се ако нека од наведених сесија има ознаке. |
| `beeuni sessions status [--all] [--json]` | Све сесије и шта њихови агенти тренутно раде. Алијаси: `overview`, `ps`. |
| `beeuni sessions info <id> [--json]` | Приказ детаља: статус, грана, агент, URL окружења. |
| `beeuni sessions new [--prompt "<text>"] [--agent <name>] [--model <id>] [--wait] [--connect] [--json]` | Покреће сесију. `--connect` повезује подразумевани агентски рантајм TUI када буде спреман (подразумева `--wait`); на интерактивном терминалу без њега, CLI пита да ли да се повеже након креирања. `--model <id>` замењује подразумевани модел пројекта; модел који ради преко API кључа или претплате на ChatGPT користи сваки кључ који можете да користите за њега, а кључеви се ротирају. `--wait` чека док се не покрене (до ~5 минута). Користите `--secret <id>` или `--no-secrets` да ограничите приступ тајнама. Ове заставице за тајне захтевају токен позадинског сервиса. Користите `--connector <alias>=<authorization-id>` или `--no-connectors` да подесите приступ конекторима. Користите `--require-connector <alias>` да бисте захтевали ауторизацију пре доделе ресурса. Заставице за опсег могу да се понављају. Користите `--context <key>=<value>` за контекст извршавања који није тајан. `--label <label>` (може да се понови) класификује сесију; `--meta <key>=<value>` (може да се понови) чува стринг у метаподацима сесије. |
| `beeuni sessions chat [<id>] [--prompt "<text>"] [--queue \| --steer] [--new] [--agent <name>] [--json]` | Разговара са агентом сесије. Подразумевано је интерактивно. Алијас: `talk`. Ради и `beeuni chat` на највишем нивоу. `--queue` је само за једнократну употребу: чува упит у трајном пријемном сандучету сесије и враћа се чим се упит сачува, уместо да га проследи окружењу за извршавање. `--steer` га чува на исти начин, а покренути циклус га чита у следећем кораку без прекида. Ако нема покренутог циклуса, започиње га. Сесија којом се не може управљати извршава га као `--queue`. |
| `beeuni sessions connect [<id>] [-- <opencode args>]` | Повезује подразумевани агентски рантајм TUI са подразумевани агентски рантајм сервером сесије. Доступно је и на највишем нивоу: `beeuni connect` / `beeuni attach`. Без ID-а отвара бирач сесија (покренутих, заустављених са поновним покретањем или нових). CLI аутоматски преузима бинарну датотеку `opencode` одговарајуће верзије (кеш: `~/.beeuni/opencode/<version>/`; замена: `BEEUNI_OPENCODE_BIN`). Pi сесија нема opencode сервер: команда излази са `1` и уместо тога наводи `beeuni sessions shell` и `beeuni sessions chat`. |
| `beeuni tui [--host <name>] [--project <id>] [--session <id>] [--new] [--agent <name>] [--terminal] [--no-sidebar] [--mouse] [--install] [--uninstall]` | **Експериментално.** Отвара Beeuni терминалски клијент: сесије, транскрипт, унос порука, љуска окружења, датотеке, преглед, апликације, прилагођавање и налог. Алијаси `beeuni t` и `beeunit`. `--new` креира сесију у пројекту при покретању (`--agent` бира агента), `--terminal` отвара љуску окружења са фокусом на њу, `--no-sidebar` покреће без бочне траке (`Alt+B` је укључује и искључује), `--mouse` предаје контролу миша апликацији (подразумевано искључено, како би избор текста, копирање и кликови на везе у терминалу наставили да раде). TUI је засебна бинарна датотека од ~80 MB; при првом покретању пита, а затим инсталира `beeuni-tui` одговарајуће верзије у `~/.beeuni/tui/<version>/`; каснија ажурирања CLI-ја освежавају је без питања и поново користе бинарну датотеку ако се није променила. `--install` то ради без упита, `--uninstall` је уклања. Користи активни хост, осим ако `--host` не наведе други; ако ниједан хост није пријављен, отвара сопствени екран за пријаву. `?` приказује све пречице. Погледајте [/docs/cli#sessions](/docs/sr/cli#sessions). |
| `beeuni sessions shell [<id>] [--new]` | Отвара сирови интерактивни терминал у окружењу, без агента. Поново се повезује са постојећим терминалом сесије; `--new` увек покреће нови. Алијаси: `terminal`, `ssh`. |
| `beeuni sessions shell <id> ls [--json]` | Приказује терминале сесије: ID, статус, команда. Не захтева TTY. |
| `beeuni sessions shell <id> kill <pty-id>` | Гаси један терминал. Спољна љуска се поново покреће при следећем повезивању; све што се у њој извршава не покреће се поново. |
| `beeuni sessions forward <id> --port <sandbox>[:<local>]` | Прослеђује порт окружења на вашу машину, као у VS Code-у, тако да `http://localhost:3000` који је агент исписао ради у вашем прегледачу. `--port` може да се понови; ако локални порт није наведен, користи се исти број ако је слободан, иначе следећи слободан; `:0` захтева привремени порт који додељује ОС. Прослеђују се и HTTP и WebSocket (вруће поновно учитавање развојног сервера ради). Исписује по један ред `⇄ localhost:N → sandbox:M` за свако прослеђивање и остаје у првом плану до Ctrl+C. Не покреће заустављену сесију — уместо тога исписује решење `beeuni sessions restart`. Алијас: `ports`. |
| `beeuni sessions log [<id>] [--limit <n>] [--json]` | Приказује недавне поруке, само за читање. Покренута сесија чита се уживо; заустављена се чита из транскрипта сачуваног на крају сваког циклуса, па се никад не буди само ради читања. Извор се наводи на stderr-у, тако да се излаз `--json` не мења. Алијаси: `messages`, `history`. |
| `beeuni sessions attachments <id> [--download <attachment-id>\|--all] [--out <dir>] [--json]` | Приказује сачуване датотеке сесије — оно што су корисници приложили и копије датотека које је агент приказао — и преузима их. Ради и када је сесија заустављена: ни списку ни бајтовима није потребно њено окружење. При преузимању се датотеке никада не преписују; име које је већ заузето постаје `name (1).ext`. |
| `beeuni sessions pending <id> [--json]` | Приказује отворене упите за дозволу алата или питања. Алијас: `prompts`. |
| `beeuni sessions approve <id> [<req-id>] [--always] [--reject] [--message "<text>"]` | Одговара на упит за дозволу. |
| `beeuni sessions answer <id> [<req-id>] [--option <v>]... [--text "<text>"] [--reject]` | Одговара на упит са питањем. |
| `beeuni sessions digest [--since <7d>] [--json]` | Сажет преглед више сесија. Транскрипт заустављене сесије преузима се из сачуване копије и означава као `saved` (и као `partial` када копија не досеже прву поруку). Алијаси: `review`, `summary`. |
| `beeuni sessions scope <id> [scope options] [--json]` | Чита или замењује приступ тајнама и конекторима. Алијас: `access`. За тајне користите `--secret <id>`, `--no-secrets` или `--inherit-secrets`. За везивања конектора користите `--connector <alias>=<authorization-id>` или `--no-connectors`. За обавезне конекторе користите `--require-connector <alias>` или `--no-required-connectors`. Категорије које наведете замењују тренутне вредности. Изостављене категорије остају непромењене. Измене се примењују на следећи упит. Уклоњене вредности тајни остају у постојећем контексту ако их је сесија већ прочитала. |
| `beeuni sessions preview <id> [port] [--port <n>] [--list] [--json]` | Исписује URL прегледа окружења на који се може кликнути за порт. Подразумевани порт: `3000`. `--list` уместо тога исписује именоване кандидате. |
| `beeuni sessions restart <id>` | Поново покреће окружење сесије. |
| `beeuni sessions rename <id> <name>` | Поставља име сесије. Наведите `""` да бисте га обрисали. |
| `beeuni sessions update [<id>] [--label <l>]... [--unlabel <l>]... [--clear-labels] [--meta <key>=<value>]... [--unmeta <key>]... [--json]` | Мења ознаке и метаподатке сесије. `--label` додаје, `--unlabel` уклања, `--clear-labels` прво празни списак; `--meta` поставља стринг вредност кључа, `--unmeta` уклања кључ. Без ID-а ажурира `$BEEUNI_SESSION_ID`, тако да агент означава сесију у којој ради. Алијас: `label`. |
| `beeuni sessions rm <id>...` | Зауставља и брише једну или више сесија. |
| `beeuni sessions open <id>` | Отвара контролну таблу сесије у прегледачу. |
| `beeuni sessions stop <id> [--json]` | Паузира сесију. Окружење се зауставља на тренутном месту, а диск се чува. Алијас: `pause`. Потребан је `project.session.stop`. |
| `beeuni sessions start <id> [--wait] [--json]` | Будући сесију: додељује недостајуће окружење, наставља заустављену сесију и разрешава њено окружење за извршавање. Операција је идемпотентна. Алијас: `wake`. `--wait` чека док сесија не буде спремна (до ~5 минута) и излази са `1` ако се сесија заврши у стању грешке или заустављена. |
| `beeuni sessions warm [--exclude <id>] [--json]` | Унапред креира сесију коју ћете користити, тако да је окружење већ покренуто. Поново користи постојећу загрејану сесију која се не користи. Загрејана сесија остаје скривена из `sessions ls` док не прими први упит. |
| `beeuni sessions model <id> <model-id> [--json]` | Мења модел који сесија користи усред сесије. Активно окружење се преусмерава, а његово окружење за извршавање поново покреће, чиме се завршава тренутни циклус; заустављена сесија чува вредност за следеће покретање. Сесија без изабраних кључева за добављача новог модела добија све кључеве које можете да користите код тог добављача. |
| `beeuni sessions compact <id> [--json]` | Сажми досадашњи разговор и настави на основу сажетка. Сесија чије окружење током извршавања не наводи `session.compact` излази са `1` и наведеним разлогом. |
| `beeuni sessions queue <id> [ls] [--json]` | Наведи упите који још чекају у трајном пријемном сандучету сесије. |
| `beeuni sessions queue <id> rm <prompt-id>` | Одбаци један упит из реда чекања. Одбија се (`409`) када модел почне да одговара на њега. |
| `beeuni sessions queue <id> now <prompt-id>` | Следећи обради један упит из реда чекања: поново га стави у ред испред осталих, без обзира на редослед, и ослободи задржавање сесије. |
| `beeuni sessions queue <id> hold\|release` | Задржи све упите у реду чекања — оно што ради дугме Stop — или ослободи задржавање. |
| `beeuni sessions approvals <id> [ls] [--json]` | Наведи позиве конектора под контролом одобравања на које ова сесија чека људску одлуку. |
| `beeuni sessions approvals <id> approve\|deny <execution-id>` | Дозволи извршавање једног контролисаног позива конектора или га одбиј. Агенту ће бити речено и наставиће без њега. |
| `beeuni sessions files <id> <subcommand> [--json]` | Читај и уређуј активни радни простор sandbox окружења: `ls [<path>]`, `status`, `find <query>`, `write <path>`, `touch <path>`, `mkdir <path>`, `mv <from> <to>`, `rm <path>`. |
| `beeuni sessions share <id> [--mode private\|project\|members] [--member <id\|email>] [--group <id>] [--show] [--json]` | Подеси ко унутар Beeuni може да отвори ову сесију. Ако нема `--mode`, приказује се тренутно подешавање и ништа се не мења. `--member` и `--group` могу да се понављају. |
| `beeuni sessions links <id> ls [--json]` | Наведи све јавне везе икада направљене за ову сесију, од најновије ка најстаријој. |
| `beeuni sessions links <id> create [options]` | Направи једну јавну везу без аутентификације за порт за преглед или једну датотеку из радног простора. |
| `beeuni sessions links <id> revoke <share-id>` | Укини једну јавну везу. |

`sessions queue` захтева `project.session.start` — исту дозволу као за слање поруке.
Упит у реду чекања опстаје и након затварања терминала и испоручује се када
сесија може да га прими. Додајте га помоћу
`beeuni sessions chat <id> -p "…" --queue` или усмерите активни ток помоћу
`--steer`. `sessions queue ls` приказује `DELIVERY` сваког упита (`steer`,
`queue` или `interrupt`) и, за упит за усмеравање који се извршава као `queue`,
разлог: `unsupported` (сесија не може да прима поруке усред тока),
`not_prompter` (у току је обрада другог члана) или `turn_ended`.

`sessions approvals` су трајни: за разлику од `sessions pending`, опстају након
поновног покретања sandbox окружења. За њих је потребно `project.members.manage`,
или да будете човек који је покренуо сесију. Агент никада не сме да реши сопствено одобрење.

`sessions attachments` чита приватно складиште датотека сесије, а не њен
радни простор. Датотеке се тамо смештају приликом слања, а свака датотека коју је агент
приказао смешта се тамо на крају тока.

`sessions files` чита радно стабло које агент тренутно уређује, пре
било каквог комитовања; `beeuni files` чита комитовани репозиторијум. Путање
се разрешавају унутар `/workspace`, осим ако почињу са `/workspace`, `/tmp`,
`/home` или `/opt`. Команда буди sandbox ако спава. Опције:
`--from <local path>` (`write` чита ову датотеку уместо stdin-а), `--content`
(`find` претражује садржај помоћу ripgrep-а уместо назива датотека), `--limit <N>`
(ограничење броја датотека `find`) и `-y` за прескакање потврде `rm`.

`sessions share` је под контролом власника: API одбија менаџера пројекта
који већ нема дозволу за читање сесије. Заједничка сесија се извршава само помоћу кључева
провајдера који су доступни целом пројекту: модел који се извршавао помоћу ваших личних кључева
прелази на кључеве пројекта за тог провајдера, а ако ниједан такав кључ није доступан,
дељење се одбија (`409 SHARED_SESSION_NEEDS_PROJECT_KEY`).

Опције за `sessions links create`: `--port <n>` (подразумевано `3000`; `22`, `8000`
и портови opencode се одбијају), `--path <p>` (подразумевано `/`),
`--preview <id>` (именовани кандидат — `web`, `vite`, `dev-server`, `api-docs` —
уместо `--port`/`--path`), `--file <path>` (дели једну датотеку из радног простора
уместо прегледа; увек само за читање), `--mode view\|interactive` (подразумевано `view`;
`interactive` дозвољава уписивање и веб-сокете и занемарује се за `--file`),
`--label <text>` и `--expires <iso>`. За прављење везе потребан је власник сесије,
јер за саму везу није потребна пријава; за навођење и опозив везе потребан је и менаџер пројекта.

Унутар sandbox окружења, `BEEUNI_SESSION_ID` је ID ваше сесије.

<a id="change-requests"></a>

### Захтеви за измену

Захтев за измену (CR) спаја једну грану у другу на било ком Git хосту. То је једини начин
да агент пренесе рад из сесије у подразумевану грану. Погледајте [Захтеви за измену](/docs/sr/work/change-requests).

| Команда | Ефекат |
| --- | --- |
| `beeuni cr ls [--status open\|merged\|closed\|all] [--project <id>]` | Наводи CR-ове. Подразумевано: `--status open`. |
| `beeuni cr show <cr> [--project <id>]` | Приказује један CR, укључујући преглед спајања. Алијас: `info`. |
| `beeuni cr diff <cr> [--no-color] [--json]` | Приказује обједињени diff CR-а. |
| `beeuni cr open --title "<text>" [--description "<text>"] [--head <ref>] [--session <id>] [--base <ref>]` | Отвара CR. Алијаси: `new`, `create`. Унутар sandbox окружења, `--head` и `--session` се аутоматски подразумевају. `--base` се подразумевано поставља на подразумевану грану пројекта. |
| `beeuni cr merge <cr> [--message "<text>"]` | Спаја отворени CR. Када је могуће, врши брзо премотавање; у супротном, тросмерно спајање. |
| `beeuni cr close <cr>` | Затвара отворени CR без спајања. |
| `beeuni cr reopen <cr>` | Поново отвара затворени CR. Спајани CR-ови су коначни. |
| `beeuni cr merge-preview <cr> [--json]` | Наводи да ли CR може да се споји и све путање у сукобу. Алијас: `preview`. |
| `beeuni cr request-changes <cr> --message "<text>"` | Тражи од агента који је отворио CR да га измени. Алијас: `changes`. |
| `beeuni cr version-diff --from <ver> --into <ver> [--json]` | Сажима једну верзију у односу на другу пре отварања CR-а. |

`request-changes` бележи напомену у CR-у и доставља је сесији из које је потекао,
покрећући њено sandbox окружење ако спава. Захтева `project.review.act` —
исто овлашћење које користи Центар за преглед, а не `gitops.push`.

`<cr>` прихвата број у оквиру пројекта (`3`) или цео ID. Унутар sandbox окружења, CLI аутоматски чита токен — није потребна пријава ни веза.

<a id="review"></a>

### Преглед

Пријемно сандуче за преглед пројекта — све што чека људску одлуку: захтеви
за измену, позиви алата конектора чија је политика условљена одобрењем, као и резултати,
одлуке и групе које агенти шаљу на потврду. Одражава Центар за преглед на контролној табли.
Укључено је за сваки пројекат; `project.review.read` и
`project.review.act` контролишу читање и обављање радњи.

| Команда | Ефекат |
| --- | --- |
| `beeuni review ls [--segment <s>] [--kind <k>] [--json]` | Наводи ставке у пријемном сандучету. Подразумевано: сви сегменти. |
| `beeuni review show <item-id> [--json]` | Приказује ставку у целости. |
| `beeuni review act <item-id> <verdict> [--message <text>]` | Одлучује о једној ставци. `--message` садржи напомену. |
| `beeuni review bulk <verdict> <id> [<id> …]` | Одлучује о више изворних ставки у једном позиву. |
| `beeuni review submit --kind <k> --title <t> [options]` | Шаље резултат, одлуку или групу на преглед. |

Исходи: `approve`, `reject`, `changes`, `answer`, `dismiss`. Сегменти:
`needs_you`, `waiting`, `done`. Врсте: `change`, `approval`, `output`,
`decision`, `batch`.

Место на које се исход примењује зависи од ID-а ставке. За `cr:<id>`, `approve` спаја
измену, `reject` је затвара, а `changes` шаље напомену назад агенту
који ју је отворио (захтева се `--message`). За `call:<id>`, `approve` дозвољава
извршавање позива алата, а `reject` га одбија; за одобрење конектора не прихвата се ниједан други исход —
прво прочитајте аргументе помоћу `beeuni review show`. Сви остали ID-ови усмеравају се
на изворну крајњу тачку за радње, која прихвата сваки исход.

`bulk` делује само на изворне ID-ове. Одобрење конектора захтева засебан
преглед параметара, а захтев за измену приказ diff-а, па се оба пријављују и прескачу —
исто правило као код вишеструког избора на контролној табли.

Опције за `submit`: `--kind output\|decision\|batch` (обавезно), `--title <text>`
(обавезно), `--summary <text>`, `--risk none\|low\|medium\|high` (подразумевано
`none`), `--detail <json>` (JSON објекат), `--agent <name>` и
`--session <id>` (занемарује се ако сесија није део овог пројекта).

За читање је потребан `project.review.read`, за одлуке `project.review.act`, а
за `submit` потребан је `project.review.submit`.

<a id="secrets"></a>

### Тајне

Шифроване вредности сачуване у пројекту. Подразумевано, тајна се при покретању убризгава као обична променљива окружења у свако окружење сесије (изложеност окружења). Испорука са принудном контролом — када окружење чува референцу, а Beeuni замењује праву вредност ван њега (изложеност уз контролу излазног саобраћаја, и `beeuni secrets call`) — експериментална је. Омогућите ознаку функције `secrets_egress` (Settings → Feature flags) да бисте је користили; када је ознака искључена, `beeuni secrets delivery … egress` враћа `403` `feature_disabled`. Погледајте [Secrets](/docs/sr/project/secrets).

| Команда | Ефекат |
| --- | --- |
| `beeuni secrets ls` | Наводи тајне према идентификатору и спецификацији манифеста `env`, уз приказ ко може да користи сваку вредност. Означава вредности које су обавезне, али недостају. |
| `beeuni secrets set NAME=VALUE ... [--identifier <id>] [--scope runtime\|connector] [--only-me]` | Додаје или ажурира једну или више тајни. `NAME=-` чита вредност са стандардног улаза. `--scope connector` чува вредност на страни сервера за мрежни пролаз конектора. `--only-me` омогућава да нову вредност користите само ви. |
| `beeuni secrets share IDENTIFIER --user <email\|id\|me> --group <id> --agent <name> \| --everyone` | Подешава ко може да користи вредност. Људи јој приступају директно или у сопственим приватним сесијама; агент јој приступа у свакој својој сесији, укључујући покренуте окидачима. Погледајте [Who can use a secret](/docs/sr/project/secrets#who-can-use-a-secret). |
| `beeuni secrets request NAME ... [--scope runtime\|connector] [--expires <min>]` | Прави везу путем које човек може да унесе вредност коју ви немате. |
| `beeuni secrets unset NAME ...` | Уклања тајне. |
| `beeuni secrets grant IDENTIFIER --agent <name>` | Омогућава једном агенту да прими ову тајну: спаја идентификатор са листом `secrets` тог агента у `beeuni.yaml`, додајући ставку за агента ако је манифест изоставља. |

`grant` служи за исправљање ставке коју `ls` пријављује као недостављиву. Увек само проширује листу једног агента; да бисте је сузили или заменили, препишите цео скуп командом `beeuni
agents scope`. There is no `secrets revoke` — API нема путању за уклањање једног идентификатора из одобрења. Прво одобрење у пројекту без агената покреће управљање приступом: од тада агент који није наведен у манифесту не добија тајне пројекта, а команда то наводи када се то деси.

### Env

| Команда | Ефекат |
| --- | --- |
| `beeuni env pull [--out <path>] [--force]` | Записује костур `.env` — само називе. Вредности никада не напуштају облак. |
| `beeuni env push --from <path>` | Учитава сваку `NAME=VALUE` из dotenv датотеке као тајну. |

### Agents

Подешавања модела за сваког агента на повезаном пројекту.

| Команда | Ефекат |
| --- | --- |
| `beeuni agents ls [--json]` | Приказује закачени модел сваког агента и подразумевани резервни модел. Псеудоним: `models`. |
| `beeuni agents model <agent> <provider/model>` | Закачи модел за агента. |
| `beeuni agents model <agent> --clear` | Уклања закачени модел — агент поново користи подразумевани. |
| `beeuni agents default <agent>` | Поставља овог агента као подразумеваног агента пројекта. |
| `beeuni agents default --show [--json]` | Исписује тренутног подразумеваног агента. |
| `beeuni agents scope <agent> [--secrets all\|none\|A,B] [--connectors all\|none\|a,b] [--apps all\|none\|a,b] [--require-connector <slug>]` | Замењује тајне, конекторе и Beeuni Apps које агент сме да користи. `--apps` прихвата псеудониме апликација и захтева `beeuni.yaml` верзије v2; агенту је потребан и `project.app.read`. `--require-connector` може да се понавља и мора да буде разрешен пре почетка сесије. |
| `beeuni agents scope <agent> --show [--json]` | Исписује тренутни опсег приступа агента. |
| `beeuni agents config <agent> [--json]` | Исписује цео конфигурациони блок агента. |
| `beeuni agents config <agent> --file <path>` | Замењује блок садржајем JSON датотеке. `-` чита са стандардног улаза. |
| `beeuni agents config <agent> --set <key>=<value> ...` | Мења појединачне кључеве са тачкастим записом, спајајући измене. Може да се понавља, нпр. `behavior.model=glm-5.3-flash`, `enabled=false`, `connectors=["slack"]`. |

Свака опција опсега приступа замењује постојеће вредности; ниједна их не спаја. Вредност `--set` тумачи се као JSON ако је то могуће, а у супротном се чува као стринг. Закачени модели и `scope` примењују се одмах, без урезивања у `beeuni.yaml`; `default` и `config` урезују измене у `beeuni.yaml` на подразумеваној грани пројекта. За `scope` је потребан `project.agent.write`, као и за `default` и `config`.

### Tools

Алати које добијају сесије овог пројекта, учитани из локалне датотеке `beeuni.yaml` и њених [импорта](/docs/sr/project/manifest#imports). Покрените из корена пројекта. Погледајте [Tools](/docs/sr/project/tools).

| Команда | Ефекат |
| --- | --- |
| `beeuni tools ls [--json]` | Наводи сваки алат доступан сесијама: назив, врсту (`beeuni`, `beeuni (overridden)`, `project`) и извор (`beeuni:<name>` или путању модула). Такође наводи Beeuni алате које је пројекат уклонио. `--json` исписује `{ manifest, tools_key, tools, removed }`. |
| `beeuni tools eject <name> [--force]` | Копира Beeuni алат `<name>` у `tools/<name>.ts` и поставља `tools.<name>: tools/<name>.ts` у `beeuni.yaml`, у датотеци у којој је алат декларисан. Измењени ред завршава се са `# ejected from beeuni:<name>`; сви остали коментари остају. Ако нема кључа `tools:`, наводи и остала четири Beeuni алата, па се уклањањем ништа не уклања. Одбија ако `tools/<name>.ts` постоји или ако алат већ упућује на други модул, осим ако је наведен `--force`. Одбија назив који није Beeuni алат. |

Ако нема кључа `tools:`, свака сесија добија свих пет Beeuni алата (`web_search`,
`image_search`, `scrape_webpage`, `memory`, `show`). Ако постоји кључ `tools:`,
сесије добијају само Beeuni алате наведене у њему. Да бисте уклонили Beeuni алат, избришите његов ред испод `tools:`, па покрените `beeuni validate`. Да бисте ограничили алате једног агента, користите `agents.<name>.tools`. Излазни кодови: `0` — завршено; `1` — одбијено (датотека постоји, манифест или импорт не може да се рашчлани); `2` — нема манифеста, непозната опција или назив није Beeuni алат.

### Models

Које моделе пројекат нуди и који модел се подразумевано користи. Исти интерфејс као у контролној табли под Customize → Models. Пројекат чува само изузетке од подразумеваних вредности каталога (најновији модел сваке породице). Омогућавање модела утиче само на приказ: одређује шта нуде бирачи, никада шта мрежни пролаз испоручује.

| Команда | Ефекат |
| --- | --- |
| `beeuni models ls [--json]` | Наводи сваки модел који можете да покренете: статус, порекло, начин плаћања (`VIA`: Beeuni, API кључ или ChatGPT — ваш, дељен са вама или дељен са пројектом), добављач. |
| `beeuni models enable <model-id>...` | Нуди ове моделе. |
| `beeuni models disable <model-id>...` | Престаје да их нуди. Ако је неки од њих подразумевани модел пројекта, команда одбија радњу уз `409` — прво промените подразумевани модел. |
| `beeuni models reset` | Уклања све изузетке и враћа се на подразумеване вредности каталога. |
| `beeuni models default [--json]` | Исписује ланац подразумеваних вредности (пројекат → налог → платформа) и разрешену вредност. |
| `beeuni models default <model-id> [--account]` | Поставља подразумевани модел пројекта или подразумевани модел за цео налог помоћу `--account`. |
| `beeuni models default --clear [--account]` | Брише подразумевани модел пројекта или налога. |

ИД-ови модела су ИД-ови за пренос преко мрежног пролаза — основни управљани ИД (`glm-5.3-flash`) или BYOK `provider/model`. Копирајте неки из `beeuni models ls --json`. Појединачни закачени модели агената налазе се у `beeuni agents model <agent> <model-id>`. За уписе је потребан `project.model.write`.

### Channels

Управља повезивањем пројекта са платформом за ћаскање. Токени се шифровано чувају у тајнама пројекта и разрешавају на страни сервера — никада се не убризгавају у окружење.

| Команда | Ефекат |
| --- | --- |
| `beeuni channels status [--json]` | Приказује тренутну везу. |
| `beeuni channels connect [--wait] [--timeout <sec>]` | Повезује у једном кораку: исписује везу за инсталацију. `--wait` чека док се инсталација не заврши. |
| `beeuni channels connect --manual [--bot-token <token>] [--signing-secret <secret>]` | Режим коришћења сопствене апликације: директно чува токен бота и тајну за потписивање. |
| `beeuni channels disconnect [--platform slack\|teams]` | Уклања везу пројекта — Slack везу или Teams везу помоћу `--platform teams`. |
| `beeuni channels manifest` | Исписује JSON манифеста апликације за начин рада са сопственом апликацијом. |
| `beeuni channels email status [--json]` | Поштанско сандуче и режим испоруке за један конектор е-поште. |
| `beeuni channels email connect [options]` | Прави управљано поштанско сандуче или повезује постојеће сандуче AgentMail. |
| `beeuni channels email disconnect` | Уклања везу са поштанским сандучетом. |
| `beeuni channels email policy [--allow <email\|@domain>] [--allow-regex <re>] [--allow-all]` | Замењује списак оних који смеју да шаљу е-пошту агенту. |
| `beeuni channels bindings [ls] [--json]` | Наводи сваки повезани канал и агента, модел и смернице за придруживање на које се разрешава. |
| `beeuni channels bind <bindingId> [--agent <name>\|--no-agent] [--model <id>\|--no-model] [--policy <p>]` | Мења једно повезивање. `--policy` прихвата `owner_approval`, `owner_only` или `project_open`. |

`--platform slack|teams` бира платформу; подразумевано је `slack`. Teams
`connect` исписује URL за Microsoft административну сагласност; давање сагласности на нивоу целог tenant-а
аутоматски објављује апликацију у Teams каталогу. Погледајте [Конекторе](/docs/sr/connect/connectors).

Канал е-поште користи AgentMail и захтева заставицу функције `agentmail_email`. Опције `email connect` су: `--connector <slug>` (подразумевано `beeuni_email`),
`--api-key <k>` (користите сопствени AgentMail кључ; `-` чита стандардни улаз),
`--display-name <n>` (име пошиљаоца у одлазној пошти; подразумевано име пројекта),
`--username <u>` и `--domain <d>` (ново управљано пријемно сандуче), и
`--inbox-id <id>` са `--email <addr>` (приложите постојеће пријемно сандуче — оба су
обавезна заједно). `--allow` се може навести више пута и поставља смернице у ограничени режим; вредност без `@`, или вредност са почетним `@`, тумачи се као домен.
`--allow-all` брише листу и поново прихвата све пошиљаоце.

За уписе у е-пошту и `bind` потребан је `project.connector.write`.

<a id="connectors"></a>

### Конектори

Конектори које агент позива као алате. `add`, `rm` и `policy set` уређују локални `beeuni.yaml`; покрените `beeuni ship` да примените измене, осим ако не проследите `--apply` да бисте одмах променили cloud пројекат.

| Команда | Дејство |
| --- | --- |
| `beeuni connectors ls [--json]` | Наводи конекторе и њихов статус. |
| `beeuni connectors show <slug> [--json]` | Приказује алате једног конектора. |
| `beeuni connectors add <slug> --provider <p> [options] [--apply]` | Додаје конектор. |
| `beeuni connectors rm <slug> [--apply]` | Уклања конектор. |
| `beeuni connectors rename <slug> <name>` | Поставља приказано име конектора. |
| `beeuni connectors sync` | Усклађује каталог са испорученим `beeuni.yaml`. |
| `beeuni connectors credential <slug> [value]` | Поставља акредитив конектора. |
| `beeuni connectors connect <slug>` | Покреће повезивање једним кликом. |
| `beeuni connectors link <slug> [--expires <min>]` | Креира дељиви линк за повезивање намењен особи. |
| `beeuni connectors types [--connector <a,b>] [--out <file>]` | Уписује TypeScript типове за сваку позиву радњу: датотеку `declare module '@beeuni/sdk'` која типизира аргументе `connectors.callAction(slug, action, args)` и `output`. Управљани конектори не објављују излазну шему, па је њихов резултат `unknown`. Без `--out` исписује се на stdout. |
| `beeuni connectors accounts <slug> [--default <label\|id>] [--json]` | Наводи налоге под којима ваши позиви могу да се извршавају, заједно са идентитетом са којим је сваки повезан. `--default` фиксира један налог. |
| `beeuni connectors connections ls [--all] [--json]` | Наводи везе са ознаком, `CONNECTED AS`, власником, `WHO CAN USE` (`owner only`, `everyone` или ознаке одобрења, са `(not you)` када је наводите само ради управљања), статусом и подразумеваном вредношћу. |
| `beeuni connectors connections rename <id> <label…>` | Преименује везу. Мења се само ознака; није потребна поновна ауторизација. |
| `beeuni connectors connections share <id> [--group <id>]… [--user <email\|id>]… [--everyone]` | Дели ваш сопствени приватни налог: он постаје дељени налог који само та особа може да користи (`--everyone`: цео пројекат). Потребно је право управљања везама пројекта. |
| `beeuni connectors apps [<query>] [--category <c>] [--cursor <c>] [--limit <n>] [--json]` | Претражује каталог управљаних алата — slug-ове које `add --provider composio --app <slug>` прихвата. Алијас: `beeuni connectors toolkits`. Додајте `--pipedream` за стари каталог. |
| `beeuni connectors catalog [<query>] [--cursor <c>] [--json]` | Прегледа каталог директних конектора. Захтева заставицу `connectors_api_discover`. |
| `beeuni connectors catalog show <id> [--json]` | Приказује површине једног записа у каталогу. |
| `beeuni connectors sensitive <slug> on\|off` | Ограничава и читања овог конектора — сваки позив тада захтева одобрење. Примењује се одмах. |
| `beeuni connectors owner <slug> project\|user` | Одређује ко врши ауторизацију: једна веза пројекта или сваки члан путем сопствене везе. Примењује се одмах. |
| `beeuni connectors authorize <slug> [--status] [--scope "<a b>"] [--client-id <id>] [--client-secret <s>] [--success-redirect <url>] [--error-redirect <url>] [--json]` | Спроводи OAuth 2.1 за конектор од почетка до краја: открива метаподатке за ауторизацију сервера, региструје Beeuni као клијента (RFC 7591) тамо где сервер то подржава и исписује URL за одобравање. `--status` уместо тога приказује резултат. |
| `beeuni connectors authorize <slug> --device` | Исто, користећи OAuth 2.0 ток уређаја (RFC 8628): исписује код и URL, а затим проверава статус док захтев не буде одобрен, одбијен или истекне. |
| `beeuni connectors policy ls [--json]` | Приказује смернице за извршавање на нивоу пројекта. Алијас: `show`. |
| `beeuni connectors policy set --default <risk\|allow_all> [--apply]` | Поставља подразумевани режим извршавања у `beeuni.yaml`. `--apply` га поставља одмах. |
| `beeuni connectors policy add <match> <allow\|ask\|block> [--condition <k=v>]` | Додаје правило на нивоу пројекта. Примењује се одмах. `--condition` га ограничава на аргумент који се подудара и може се навести више пута; `k!=v` га негира, а `k` је тачкаста путања до аргумената позива. |
| `beeuni connectors policy rm <match>` | Уклања правило на нивоу пројекта. Примењује се одмах. |
| `beeuni connectors policy <slug> ls\|set <match> <allow\|ask\|block>\|rm <match>\|clear` | Управља правилима позива алата једног конектора. |

`policy ls`, `show`, `set`, `add` и `rm` представљају површину на нивоу пројекта, па се конектор назван једним од тих глагола мора адресирати као `policy <slug> ls`. `<match>` је назив алата, glob (`send_*`) или `/regex/`.

Опције за `add`: `--name <label>`, `--provider <pipedream\|mcp\|openapi\|postman\|graphql\|http>`, `--app <slug>`, `--url <url>`, `--transport <http\|sse>`, `--endpoint <url>`, `--base-url <url>`, `--spec <url\|path>`, `--auth-type <none\|bearer\|basic\|custom>`, `--credential shared`.

<a id="sandboxes"></a>

### Песковници

Управља сликама песковника пројекта. Шаблон дефинише слику или Dockerfile, као и ресурсе; изградња производи снимак из ког се покрећу сесије.

| Команда | Дејство |
| --- | --- |
| `beeuni sandboxes ls [--json]` | Наводи шаблоне и тренутно стање провајдера. |
| `beeuni sandboxes builds [--json]` | Приказује недавни дневник изградње. |
| `beeuni sandboxes health [--json]` | Приказује спремност примарног шаблона. |
| `beeuni sandboxes add <slug> (--image <i>\|--dockerfile <p>) [options]` | Креира прилагођени шаблон и покреће изградњу. |
| `beeuni sandboxes update <slug> [options]` | Ажурира шаблон. |
| `beeuni sandboxes build <slug>` | Покреће поновну изградњу. |
| `beeuni sandboxes rebuild <slug>` | Приморава поновну изградњу: прво брише постојећи снимак. |
| `beeuni sandboxes rm <slug>` | Брише шаблон. |
| `beeuni sandboxes fix` | Покреће сесију са дневником последње неуспешне изградње да би је поправио. |
| `beeuni sandboxes provider [--json]` | Приказује изабраног провајдера песковника пројекта и провајдере које овај хост нуди. |
| `beeuni sandboxes provider <name> [--timeout <sec>]` | Везује сваку нову сесију за једног провајдера. Ако је за циљ потребно прво изградити снимак, API одговара припремом, а команда је извршава до краја. Подразумевано `--timeout`: 600s. |
| `beeuni sandboxes provider --clear` | Уклања избор и прати подразумевану вредност платформе. Алијас: `--unpin`. |
| `beeuni sandboxes provider status [--json]` | Приказује најновији прелаз провајдера и његову историју. Алијас: `transition`. |

Избор провајдера захтева `project.settings.write`.

Опције `add`/`update`: `--name <label>`, `--cpu <n>`, `--memory <n>` (GiB), `--disk <n>` (GiB).

<a id="backends"></a>

### Бекенди

Базе података су Apps са трајним волуменима. Управљајте њима и повезујте их преко Apps.

[Apps](/docs/feature-flags/apps)

### Маркетплејс

Прегледајте Beeuni маркетплејс и инсталирајте ставку у пројекат.

| Команда | Ефекат |
| --- | --- |
| `beeuni marketplace search [query]` | Претражује ставке на маркетплејсу. |
| `beeuni marketplace list` | Приказује ставке на маркетплејсу. |
| `beeuni marketplace show <id-or-name>` | Приказује једну ставку на маркетплејсу. |
| `beeuni marketplace install <id-or-name>` | Покреће сесију агента који увози ставку. |

Опције: `--query <text>`, `--type <type>`, `--source <source>`, `--host <name>`, `--project <id>`, `--json`.

Инсталацију обавља агент: покреће сесију пројекта која клонира ставку,
чита је, обједињује делове који одговарају и отвара захтев за измену. Не постоји
механизам за детерминистичку инсталацију, ажурирање или уклањање.

<a id="system-skills"></a>

### Системске вештине

Системске вештине Beeuni-ја су оперативни приручник платформе за људе и агенте. Обухватају сесије, сандбок окружења, подразумевани агентски рантајм, конекторе, меморију и канале. Ова јавна страница је полазна тачка; CLI са пријављеног налога преузима вештине са активног хоста. Користите `beeuni system-skills list` да бисте открили доступне вештине, а затим `get` ону која вам је потребна. API их испоручује уживо, па одговарају верзији која је распоређена на хосту. Не сматрајте локалну копију ажурном.

| Команда | Ефекат |
| --- | --- |
| `beeuni system-skills list` | Приказује системске вештине Beeuni-ја. Подразумевана подкоманда. |
| `beeuni system-skills get <name> [--full]` | Приказује тренутни `SKILL.md` једне вештине. `--full` додаје датотеке на које се она позива. |
| `beeuni system-skills path [name]` | Приказује директоријум вештине на диску у овом пројекту. |

Опције: `--host <name>`, `--json`.

`beeuni skills` је трајни алијас за исту команду. Прво се пријавите на хост помоћу `beeuni login`; API за вештине захтева аутентификацију. Користите `--host <name>` када радите са другим хостом. Јавна страница документације не може да замени ова жива упутства специфична за хост.

Ова листа увек садржи само системске вештине, никада мешавину. Опционалне вештине налазе се на маркетплејсу: `beeuni marketplace list --type skill`. За синтаксу команди користите `beeuni <command> --help`; за комплетан приручник платформе прочитајте `beeuni system-skills get beeuni-system --full`.

<a id="connector"></a>

### Конектор

Интерфејс агента унутар сандбок окружења за сваки конектор. Сваки позив се проверава, разрешава и евидентира на серверу; CLI никада не чува акредитив треће стране. Аутентификација: `BEEUNI_TOKEN`. Излаз је у формату JSON.

| Команда | Ефекат |
| --- | --- |
| `beeuni connectors discover "<intent>"` | Претражује алатке према упиту на природном језику. |
| `beeuni connectors show <connector>.<action>` | Приказује шему улаза за радњу. |
| `beeuni connectors call <connector>.<action> '<json-args>'` | Покреће алатку. Позив који захтева одобрење одмах враћа његов аутентификовани `approval_url`. Сервер наставља сесију након одлуке о одобрењу или одбијању. Проследите велике аргументе као `@file.json` или `-` (стандардни улаз). |
| `beeuni connectors call <connector>.<action> '<json-args>' --reason "<text>"` | Описује шта позив ради за особу која одобрава захтев када га политика задржи. Картица за одобрење приказује тај опис као опис агента, поред аргумената. |
| `beeuni connectors call <connector>.<action> @args.json --attach <file>` | Поставља датотеку у ред и додаје њену референцу у низ прилога радње. Гејтвеј уписује бајтове у ставку прилога провајдера. Поновите `--attach`; `--attach-path <a.b.c>` задаје име низа. Погледајте [Прилагање датотека](/docs/sr/connect/connectors#attach-files). |
| `beeuni connectors call <connector>.<action> '<json-args>' --out <file>` | Уписује цео резултат у JSON формату у `<file>` и приказује само сажетак: `saved_to`, `bytes` и `shape` (кључеви, дужине низова, `pageInfo`). Погледајте [Велики резултати](/docs/sr/connect/connectors#large-results). |
| `beeuni connectors upload <file> --connector <slug>` | Поставља једну датотеку у ред. Приказује `ref`, `{"$beeuni_attachment":"<id>"}`, за уметање у аргументе позива. |
| `beeuni connectors add <slug> --provider pipedream --app <app>` | Одмах додаје конектор, а затим га повезује. |
| `beeuni connectors rm <slug>` | Уклања конектор из пројекта. |
| `beeuni connectors connect <slug> [--owner me\|project] [--label <name>]` | Креира везу за повезивање коју користи човек. `--label` предлаже име за нови налог, на пример за други Gmail налог. |

<a id="files"></a>

### Датотеке

Приказ репозиторијума пројекта у git-у, само за читање. Ради на подразумеваној грани, осим ако `--ref` зада другу грану, ознаку или комит.

| Команда | Ефекат |
| --- | --- |
| `beeuni files ls [<path>]` | Рекурзивно излистава датотеке испод путање. Излиставање се зауставља на 1.000 датотека и то наводи; сузите га путањом или употребите `files search`. |
| `beeuni files cat <path>` | Исписује садржај датотеке. |
| `beeuni files search <query> [--content]` | Претражује називе датотека или садржај датотека помоћу `--content`. |
| `beeuni files history <path>` | Историја урезивања за једну датотеку. |
| `beeuni files branches` | Излистава гране. |
| `beeuni files commits [--path <p>]` | Излистава урезивања на `--ref`. |
| `beeuni files show <sha>` | Приказује једно урезивање и измењене датотеке. |
| `beeuni files diff <sha> [--path <p>]` | Исписује обједињену закрпу урезивања. |
| `beeuni files compare <from> <into>` | Сажима разлике између две референце. |
| `beeuni files download -o <out.zip>` | Преузима репозиторијум или подстабло `--path` на `--ref` у облику zip архиве. Алијас: `archive`. |

Опције за сваку подкоманду: `--ref <ref>`, `--path <p>`, `--limit <n>`, `--json`.
`download` прихвата и `-o, --out <file>`, што је обавезно.

Свака подкоманда захтева `project.file.read`. `download` такође одбија свако
подстабло које би обухватило агента или вештину изван вашег опсега — zip
архива не може да се филтрира током преузимања — зато у том случају архивирајте уже `--path`.

<a id="triggers"></a>

### Окидачи

Окидач покреће сесију према распореду, веб-хуку, догађају апликације или монитору (експериментално). `add`, `rm`, `enable`, `disable` мењају локални манифест — покрените `beeuni ship` да бисте применили измене. `pause`/`resume` мењају засебни прекидач на серверу. Погледајте [Окидачи](/docs/sr/connect/triggers).

| Команда | Ефекат |
| --- | --- |
| `beeuni triggers ls [--json]` | Излистава окидаче и њихово стање у току рада. |
| `beeuni triggers add <slug> [options] [--apply]` | Додаје окидач у манифест. `--apply` га одмах креира у пројекту у облаку: урезује га у `beeuni.yaml` на `main` и усклађује стање. |
| `beeuni triggers set <slug> [options]` | Мења активни окидач. Уписују се само прослеђене заставице. Увек се примењује одмах — не постоји локални облик. Алијас: `update`. |
| `beeuni triggers rm <slug> [--apply]` | Уклања окидач из `beeuni.yaml` или га одмах уклања из пројекта у облаку помоћу `--apply`. |
| `beeuni triggers info <slug> [--json]` | Приказује један окидач. |
| `beeuni triggers events --connector <slug> [--json]` | Излистава догађаје које конектор нуди, са подешавањима за сваки догађај. |
| `beeuni triggers fire <slug>` | Ручно активира окидач и чека исход покретања: неуспешно покретање завршава се ненултим излазним кодом и приказује грешку, а нова сесија покренута окидачем се чисти (покретање стављено у ред у постојећој сесији остаје). `--wait <dur>` ограничава време чекања (подразумевано `90s`; `0` враћа резултат чим се потврди прихватање активирања). |
| `beeuni triggers enable <slug> [--apply]` / `disable <slug> [--apply]` | Укључује или искључује један окидач. |
| `beeuni triggers pause` / `resume` | Деактивира или поново активира све окидаче у пројекту на страни сервера. |

Опције за `add`: `--type <cron\|webhook\|event\|monitor>` (подразумевано `cron`), `--prompt <text>` (обавезно), `--agent <name>`, `--cron <expr>` (са 6 поља, нпр. `"0 0 9 * * 1-5"`), `--run-at <iso>` (покрени једном у овом тренутку уместо према cron распореду), `--timezone <tz>` (подразумевано UTC), `--secret-env <NAME>`, `--name <label>`, `--disabled`.

Опције само за активне окидаче — важе за `add --apply` и сваки `set`: `--model <provider/model>`, `--session-mode <fresh\|keyed\|pinned\|reuse>`, `--session-key <tmpl>` (сврстава по једну сесију за сваки кључ, нпр. `"{{ body.data.chat_jid }}"`; подразумева `keyed`), `--session-id <id>` (сесија кроз коју кружи окидач типа `pinned`; мора бити сесија овог пројекта), `--session-access <private\|project\|members>` (подразумевано `private`), `--member <uuid>` и `--group <uuid>` (могу се понављати; сваки подразумева `members`) и `--filter <path=value>` (може се понављати; сваки мора да се подудара, нпр. `--filter body.type=push`).

`set` прихвата све опције само за активне окидаче, као и `--name`, `--prompt`, `--cron`, `--run-at`, `--timezone`, `--secret-env`, `--agent` и `--enabled true|false`. `--cron` и `--run-at` су међусобно искључиви: подешавање једног поништава други. Поља монитора могу само да се додају.

<a id="reminders"></a>

### Подсетници

Подсетник поново шаље упит једној сесији касније, једном или уз понављање. Чува се у бази података, а не у `beeuni.yaml`. Унутар сесије, `--session` подразумевано је `$BEEUNI_SESSION_ID`. Погледајте [Подсетници](/docs/sr/connect/reminders).

| Команда | Ефекат |
| --- | --- |
| `beeuni remind "<text>" [schedule]` | Креира подсетник. Исто што и `beeuni reminders add`. |
| `beeuni reminders add "<text>" [schedule]` | Креира подсетник. Исписује његов ИД и време следећег активирања. |
| `beeuni reminders ls [--json]` | Излистава подсетнике сесије. |
| `beeuni reminders pause <id>` / `resume <id>` | Искључује или укључује један подсетник. `resume` поново га активира од сада. |
| `beeuni reminders rm <id>` | Брише подсетник. Алијаси: `stop`, `delete`. |

Опције распореда: `--in <duration>` или `--at <iso>` (прво активирање; ако се задају самостално, активира једном), `--every <duration>` (понављање, минимум `5m`), `--cron "<expr>"` са `--timezone <tz>`. Остале опције: `--name <label>`, `--session <id>` (довољан је јединствени префикс), `--project <id>`, `--host <name>`, `--json`.

Опције догађаја (`--type event`): `--connector <slug>` и `--event <TYPE>` (обе су обавезне), `--config key=value` (може се понављати, вредности су ниске) и `--config-json '{...}'` (типизоване вредности). `set` прихвата исте заставице. Окидач догађаја одбија `--cron`, `--run-at`, `--timezone`, `--secret-env` и опције монитора. Упит чита `{{ event.data.<field> }}`; погледајте [Окидачи догађаја апликације](/docs/sr/connect/triggers#app-event-triggers).

Опције монитора (`--type monitor`): `--run <cmd>` (команда релативна у односу на репозиторијум коју треба надзирати; обавезно), `--mode <poll\|stream>` (обавезно; `poll` поново покреће команду на `--interval`, `stream` одржава команду активном), `--interval <dur>` (само `mode=poll`, минимум 30 s, нпр. `60s`, `5m`) и `--expect-event-within <dur>` (надзор тишине; ако се током временског интервала не догоди ниједан догађај, активира се догађај животног циклуса, минимум 5 min, нпр. `24h`). Монитор је команда репозиторијума коју платформа покреће 24/7, а сваки ред стандардног излаза активира окидач. Ово је експериментално: платформа покреће мониторе само тамо где је укључена заставица функције `monitors`.

<a id="access"></a>

### Приступ

CLI приказ јединствене табеле додељених дозвола. Сваки ред је **додела**: један
субјект, једна улога, један опсег, опционо сужен на један објекат. Модел је описан у одељку [Налози и приступ](/docs/sr/accounts#one-access-model). Улоге налога: `owner`, `admin`, `member`. Улоге пројекта: `manager`, `member`.

| Команда | Ефекат |
| --- | --- |
| `beeuni access assignments [--project <id>\|--account\|--all] [--json]` | Излистава доделе у једном пројекту, на нивоу налога или свуда. |
| `beeuni access grant --user <id\|email>\|--group <id>\|--service-account <id> --role <key\|id> [opts]` | Креира једну доделу. Исписује ИД доделе. |
| `beeuni access revoke <assignment-id>` | Опозива једну доделу. |

Опције за доделу: `--project <id>` (подразумевано: повезани пројекат), `--account` (цео налог), `--agent <name>` (сужава доделу на једног агента — додела објекта), `--connection <id>` (сужава употребу једног дељеног налога конектора; прва додела ограничава налог на кориснике којима је додељен, а опозив последње поново га отвара за цео пројекат), `--everyone` (додељује свима који имају приступ пројекту; садржи `--agent` или `--connection`, никада улогу) и `--expires <iso>` (временска ознака аутоматског опозива). `--principal` филтрира листу и прихвата `user:<id>`, `group:<id>`, `service_account:<id>`, `project:<id>` или `pending:<email>`; голи ИД се тумачи као корисник. Додела свима се приказује као `everyone`. Идентитет агента је `service_account`, па се улога агенту додељује помоћу `--service-account <id>`. `--user` прихвата имејл адресу и проналази одговарајућег члана у именику чланова налога.

```bash
beeuni access grant --user alice@corp.com --role manager
beeuni access grant --user alice@corp.com --role admin --account
beeuni access grant --group 8f3c… --role member --project 1a2b…
beeuni access grant --user alice@corp.com --agent support-bot
beeuni access grant --everyone --agent support-bot
beeuni access grant --group 8f3c… --connection 2b7e…
beeuni access revoke 4d5e…
```

Глаголи за чланове пројекта представљају модел за читање истих додела:

| Команда | Ефекат |
| --- | --- |
| `beeuni access ls [--json]` | Приказује особе које имају приступ пројекту, њихову улогу на налогу и ефективну улогу у пројекту. |
| `beeuni access invite <email> --role <r>` | Позива некога у пројекат. Креира доделу `pending`. |
| `beeuni access grant <user-id> --role <r>` | Поставља улогу корисника у пројекту. |
| `beeuni access revoke <user-id>` | Уклања приступ корисника пројекту. |
| `beeuni access pending [--json]` | Приказује позивнице на чекању. |
| `beeuni access resend <invite-id>` | Поново шаље имејл са позивницом и обнавља рок важења од 14 дана. Приказује и везу. |
| `beeuni access cancel <invite-id>` | Отказује позивницу на чекању. |
| `beeuni access requests ls [--json]` | Приказује захтеве на чекању од особа које траже да се придруже овом пројекту. |
| `beeuni access requests approve <req-id> [--role <r>]` | Одобрава један захтев и додељује улогу у пројекту. Подразумевана улога: `member`. |
| `beeuni access requests reject <req-id>` | Одбија један захтев. Алијас: `deny`. |

За сваку команду у ова два блока потребно је `project.members.manage`.

Особа, група или агент добија улоге од Beeuni; агент уз то има Beeuni дозволе у `beeuni.yaml`, а сесија може да ради само оно што обе дозвољавају. Погледајте [Један речник, два повезивања](/docs/sr/accounts#one-vocabulary-two-bindings).

<a id="audit"></a>

### Ревизија

Команде за ревизију читају централизовани дневник реконструкције. Листе налога и пројеката приказују се од најновијих ка најстаријим. Временска линија сесије је поређана по времену креирања (`session_sequence` је подешено само у редовима уписаним пре 2026-10; ти редови се приказују први). `--all` прати сваки курсор за наставак. `ls` приказује последњих 90 дана; `export` сеже 365 дана уназад, а догађаји старији од 90 дана долазе из архиве (погледајте [Чување ревизијских података](/docs/sr/accounts#retention)). Табела приказује наслов сваког реда (`EVENT`, на пример „Опозван кључ LLM мрежног пролаза“) поред његовог `ACTION` (`gateway.key.revoke`); `--action` филтрира по префиксу радње. Све радње и наслови: [Радње у дневнику ревизије](/docs/sr/audit-actions).

| Команда | Ефекат |
| --- | --- |
| `beeuni audit ls [filters] [--all] [--json]` | Приказује догађаје налога. |
| `beeuni audit project <project-id> [filters] [--all] [--json]` | Приказује догађаје једног пројекта. |
| `beeuni audit session <session-id> --project <project-id> [--all] [--json]` | Реконструише једну сесију хронолошким редом. |
| `beeuni audit export [filters] --format csv\|jsonl --out <file>` | Наставља све странице извоза у једну датотеку. |
| `beeuni audit webhooks ls [--json]` | Приказује веб-куке за ревизију на налогу. |
| `beeuni audit webhooks add --name <n> --url <u> [--action-prefix <p>]` | Креира веб-куку. Тајна за потпис се приказује само једном, а пробна испорука се одмах покреће. `--action-prefix` испоручује само радње са тим префиксом. |
| `beeuni audit webhooks enable <webhook-id>` | Наставља испоруку. |
| `beeuni audit webhooks disable <webhook-id>` | Паузира испоруку, задржавајући крајњу тачку. |
| `beeuni audit webhooks rm <webhook-id>` | Трајно брише веб-куку. |

Веб-куке за ревизију шаљу записе у SIEM систем. За сваку команду је потребно `account.write`; за `add` и `enable` потребно је и пословно право коришћења. `disable` и `rm` никада га не захтевају.

Филтери: `--actor`, `--actor-type`, `--project`, `--session`, `--source`, `--phase`, `--outcome`, `--action`, `--resource-type`, `--request-id`, `--correlation-id`, `--query`, `--since`, `--until`, `--cursor` и `--limit`.
За листе налога и извозе потребни су `audit.read` и право коришћења `auditAccess` за налог. За листе целог пројекта потребан је `project.members.manage` јер могу да садрже метаподатке приватних сесија. За реконструкцију сесије потребни су `project.session.read` и видљивост те сесије.

<a id="roles"></a>

### Улоге

Улога је именовани скуп дозвола. Системске улоге (`owner`, `admin`, `member` на нивоу налога; `manager`, `member` на нивоу пројекта; уз то и `agent-user`, ознака коју носи додела објекта) су референце само за читање. Можете да креирате и уређујете прилагођене улоге; за то је потребно пословно право коришћења `rbac`.

| Команда | Ефекат |
| --- | --- |
| `beeuni roles ls [--json]` | Приказује системске и прилагођене улоге. |
| `beeuni roles show <role> [--json]` | Приказује дозволе и коришћење једне улоге. |
| `beeuni roles permissions <role> [--json]` | Приказује дозволе једне улоге. |
| `beeuni roles create <key> --name <n> [options]` | Креира прилагођену улогу. |
| `beeuni roles edit <role> [--name <n>] [--desc <t>\|--no-desc]` | Мења назив или опис прилагођене улоге. Њен кључ се никада не мења. Потребан је `role.update`; за системску улогу команда не важи. |
| `beeuni roles set-actions <role> --actions a,b` | Замењује дозволе прилагођене улоге. |
| `beeuni roles rm <role>` | Брише прилагођену улогу. |
| `beeuni roles export [--project <id>] [--out <file>] [--format toml\|json]` | Извози улоге и доделе у датотеку. |
| `beeuni roles import <file>` | Примењује датотеку са улогама и доделама. |

Повежите улогу са субјектом помоћу `beeuni access grant`. Старије команде `beeuni roles assign` / `unassign` / `assignments` и даље раде и уписују исту табелу, али `beeuni access` је документовани начин. `beeuni roles actions` је замењен командом `beeuni permissions ls`.

Прилагођена улога само додаје дозволе. Beeuni нема правило забране, па улога не може да ускрати дозволу менаџеру.

<a id="permissions"></a>

### Дозволе

Каталог дозвола у облику података. Сваки ред представља једну крајњу радњу и садржи опсег у ком се о њој одлучује, да ли може да се делегира и шта подразумева. Улоге се праве од ових кључева — `beeuni roles create --actions` и `beeuni roles set-actions` прихватају искључиво њих. Алијас: `beeuni perms`.

| Команда | Ефекат |
| --- | --- |
| `beeuni permissions ls [--scope account\|project] [--area <a>] [--json]` | Приказује каталог. |
| `beeuni permissions show <action> [--json]` | Приказује све детаље једне радње. |

<a id="grants"></a>

### Доделе

Додељује један објекат пројекта субјекту — **додела објекта**. Тајне и конектори припадају агентима, па додела агента особи даје приступ свему што тај агент декларише. Агент је подразумевано затворен: члан може да му приступи само ако га додела именује или наведе неку његову групу. `beeuni access grant --agent <name>` уписује исти ред.

| Команда | Ефекат |
| --- | --- |
| `beeuni grants ls [--json]` | Приказује доделе објеката и агенте које је могуће доделити. |
| `beeuni grants assign <agent-name> --to <who> [--group]` | Додељује агента кориснику или групи помоћу `--group`. |
| `beeuni grants revoke <grant-id>` | Опозива једну доделу објекта. |

<a id="manifest-validation"></a>

### Провера манифеста

| Команда | Ефекат |
| --- | --- |
| `beeuni validate [--file <path>] [--json] [--scopes] [--no-dockerfile-lint]` | Проверава манифест у односу на канонску шему, анализира сваки Dockerfile сандбокса и повезивање агента и проверава величину репозиторијума. Прво разрешава `beeuni.yaml`, затим `beeuni.toml`. Излазни кодови: `0` — исправно (могу постојати упозорења), `1` — грешке, `2` — недостаје датотека. `beeuni ship` покреће исте провере. |
| `beeuni schema [--version 1\|2] [--url]` | Штампа JSON Schema манифеста. `--url` уместо тога штампа URL шеме. |

Погледајте [Референцу за манифест](/docs/sr/project/manifest).

<a id="repository-size"></a>

#### Величина репозиторијума

Сесија прави [конфигурацију агента](/docs/sr/work/runtime#where-a-box-gets-the-release) од свих датотека које Git прати у основном комиту. Нова сесија преузима те датотеке из сопствене радне копије, без обзира на величину. Покренута сесија добија промену основне гране преко снимка пројекта, који Beeuni cloud прави до величине од 512 MiB након компресије; ако је већи, сесија задржава конфигурацију коју користи све док се не покрене нова сесија. Свака сесија такође преузима сваку датотеку. `beeuni validate` броји датотеке које Git складишти, као и датотеке које нису праћене, а које ће `beeuni ship` следеће унети у Git, и приказује упозорење ако једна датотека има 10 MiB или више, или ако укупна величина прелази 512 MiB. Git LFS датотека се рачуна као њен показивач, јер издање садржи само показивач. Упозорење наводи највеће датотеке. Команда се никада не прекида због тога.

Да бисте уклонили упозорење:
- Преместите велике статичке ресурсе (видео-записе, слике, скупове података, тежине модела) у складиште објеката као што су S3, R2 или GCS, или на CDN, па их преузимајте током извршавања.
- Додајте излазне датотеке изградње (`dist/`, `out/`) у `.gitignore`.
- За путању која мора да остане у Git-у, али је ниједан агент не чита, додајте `<path> export-ignore` у `.gitattributes`. Издање је изоставља, као и провера; правило за директоријум обухвата све у њему. Директоријум конфигурације агента и `beeuni.yaml` се увек испоручују у целости.

<a id="token-scope"></a>

### Опсег токена

Сваки токен почиње са `beeuni_pat_`. Кориснички токен важи за све пројекте на вашим налозима. Токен пројекта важи за један пројекат и аутоматски се уноси у окружења тог пројекта. Погледајте комплетан преглед породица токена у одељку [Извршавање сесије](/docs/sr/work/runtime).

<a id="exit-codes"></a>

### Излазни кодови

| Код | Значење |
| --- | --- |
| `0` | Успех. |
| `1` | Операција није успела. Дијагностичке поруке се исписују у stderr. |
| `2` | Неисправна заставица, непозната подкоманда или недостаје обавезан аргумент. |
