Инсталиране на Pi и конфигуриране на OmniProxy
Искате асистент във вашия терминал, който може да чете файлове и да инспектира проекти, но се притеснявате, че инсталирането и конфигурирането ще бъдат твърде сложни? Pi е лек и включва минимален набор от функции по подразбиране. След като го инсталирате, можете постепенно да добавяте команди, работни процеси и интерфейси, които да отговарят на начина ви на работа.
Pi е малък терминален асистент — програма, която разговаря с вас директно в командния ред, чете файлове и изпълнява задачи. Той има кратка системна подкана и само няколко инструмента по подразбиране. Ако имате нужда от други команди, работни процеси или интерфейси, можете да ги добавите по-късно чрез разширения. Разширенията са компоненти, които добавят възможности към Pi, и можете да ги споделяте с други, след като ги създадете.
Под-агентите делегират част от задача на друг асистент, докато режимът на планиране организира стъпките, преди изпълнението да започне. Нито една от тези функции не е включена по подразбиране, но можете да помолите Pi да ги изгради или да инсталирате пакети, споделени от други.
Преди да започнете
macOS и Linux използват инсталационен скрипт — една команда, която автоматично изтегля и инсталира Pi. На Windows използвайте командата PowerShell, предоставена на началната страница на Pi. PowerShell е средата за команден ред, включена в Windows. Можете също да инсталирате Pi в WSL, Linux средата, налична в Windows.
Ако решите да инсталирате с npm, имате нужда от Node.js 22.19 или по-нова версия. npm е мениджърът на пакети, използван с Node.js, и може да инсталира Pi от командния ред.
macOS Linux
install.sh
- curl официалния скрипт
- Инсталаторът фиксира зависимостите
- Актуализирайте с pi update
Windows
install.ps1
- Официална команда PowerShell
- Git for Windows предоставя Bash
- Можете също да използвате WSL
Node вече е инсталиран
npm
- Изисква Node 22.19+
- Името на пакета е pi-coding-agent
- Добавете --ignore-scripts
Инсталиране и първо стартиране на Pi
На macOS или Linux отворете терминал и изпълнете:
curl -fsSL https://pi.dev/install.sh | sh
На Windows отворете PowerShell и изпълнете:
powershell -c "irm https://pi.dev/install.ps1 | iex"
Ако Node.js 22.19 или по-нова версия вече е инсталирана, можете също да използвате алтернативната команда от Бързия старт:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
Инсталационният скрипт може да спре, за да зададе въпроси в интерактивен терминал. Следвайте подканите на екрана, за да продължите. Ако вече имате съвместима версия на Node, тази команда npm няма да задава въпроси. За да инсталирате Pi в друга директория, добавете --prefix /your/directory. На 09.10.2026 г. това инсталира Pi 1.1.0.
Нормалната инсталация с npm не изисква скриптове за жизнения цикъл на зависимостите, които са скриптове, които пакетите изпълняват автоматично по време на инсталация. Инсталационният скрипт фиксира зависимостите; след това актуализирайте Pi с pi update. За инсталация с npm използвайте метода за актуализиране, предоставен от вашия мениджър на пакети. Потребителите на Nix трябва да инсталират от flake на Pi. Flake е конфигурация на Nix, която описва софтуера и неговите зависимости, и pi update не може да актуализира инсталация на Nix.
След инсталацията първо потвърдете, че вашият терминал може да намери Pi:
pi --version
На Windows, ако искате моделите да изпълняват Bash команди, инсталирането на Git for Windows се препоръчва за повечето локални потребители. Bash е командната среда, която Pi използва за изпълнение на някои команди. Pi проверява shellPath настройката в ~/.pi/agent/settings.json, Git Bash под Program Files, и след това bash.exe в PATH, в този ред. shellPath посочва местоположението на Bash, докато PATH е списъкът с директории, които системата търси за команди.
След стартиране на Pi можете да въведете !printf 'Bash is working\n' за да го проверите. Ако вашите файлове и инструменти вече са в WSL, инсталирайте Pi в тази Linux среда, като следвате Бързия старт.
След това влезте в папката, която искате Pi да инспектира или върху която да работи, и след това го стартирайте:
cd /path/to/folder
pi
Тази папка става текущият работен обхват на Pi. Pi я използва, за да открива файлове и конфигурация и да групира сесии.
Получаване на стойности за връзка от OmniProxy
Първо получете тези три стойности от OmniProxy:
baseUrl: https://your-omniproxy-origin.example/v1
apiKey: <YOUR_OMNIPROXY_API_KEY>
Model ID: Copy the full ID from the current OmniProxy model list
baseUrl е API крайната точка, до която Pi изпраща заявки, и тя трябва да включва /v1. apiKey е ключът, използван за достъп до API. Model ID е името на модела за извикване и трябва да бъде копирано изцяло от текущия списък с модели на OmniProxy.
Задайте api на openai-completions, както е показано в примера за съвместим API. Това поле казва на Pi кой API формат да използва при изпращане на заявки.
Копирайте целия идентификатор на модела, включително всички наклонени черти в името. На 09.10.2026 г. двете референтни идентификатора в документацията на доставчика бяха gemini-3.8-flash и grok-4.7. Не копирайте име, което не присъства в списъка.
Въвеждане на конфигурацията на инструмента
Конфигурацията на персонализирания модел на ниво потребител на Pi се съхранява в models.json. Този файл се намира в директорията на агента, която по подразбиране е ~/.pi/agent, така че пълният му път е ~/.pi/agent/models.json. Ако променливата на средата PI_CODING_AGENT_DIR е зададена, Pi използва директорията, посочена от тази променлива. Променливата на средата е конфигурационна стойност, предоставена от системата за четене от програми.
Въведете конфигурацията, както е показано в примера за съвместим API:
{
"providers": {
"omniproxy": {
"baseUrl": "https://your-omniproxy-origin.example/v1",
"api": "openai-completions",
"apiKey": "<YOUR_OMNIPROXY_API_KEY>",
"models": [
{ "id": "gemini-3.8-flash", "input": ["text"] },
{ "id": "grok-4.7", "input": ["text"] }
]
}
}
}
providers изброява свързаните услуги, докато models изброява моделите, които могат да бъдат избрани. Всеки id на модела трябва да съвпада с пълния идентификатор на модела в текущия списък с модели на OmniProxy. input показва, че моделът е конфигуриран тук за текстово въвеждане.
apiKey може да бъде въведен като буквална стойност или като $NAME или ${NAME} , така че Pi да го чете от променлива на средата. Стойност, започваща с ! се третира като команда и се изпълнява за всяка заявка. Не добавяйте реален ключ в хранилище. Ако шлюзът не валидира ключове, можете да въведете низ-заместител, използван само на вашата локална машина. На 09.10.2026 г. Pi успешно прочете файла с тази конфигурация.
Отварянето на /model презарежда този файл. /model е интерфейсът в Pi за преглед и избор на модели. Персонализираните модели не се появяват в /model докато Pi не успее да разреши техните идентификационни данни. След избор на модел натиснете Ctrl+S за да го запазите като модел по подразбиране за нови сесии.
Файл
models.json
- Директория по подразбиране: ~/.pi/agent
- Добавете запис под providers
- Задайте api на completions
Адрес
baseUrl
- Включете /v1
- apiKey може да препраща към променлива
- Идентификаторът на модела трябва да бъде точен
Изберете
/model
- Отварянето му презарежда файла
- Изберете модела, който току-що добавихте
- Ctrl+S го запазва като модел по подразбиране
Проверка с реална задача
След завършване на конфигурацията можете да извършите неинтерактивна проверка в директория, съдържаща файлове. Неинтерактивен режим означава, че Pi завършва тази единична задача и след това излиза, вместо да влиза в текущ разговор. Заменете стойността след --model с пълния идентификатор от текущия списък на OmniProxy:
pi -p --provider omniproxy --model gemini-3.8-flash --tools read "Read the first line of the file you specify. Do not modify the file."
Тук, --tools read разрешава само инструмента за четене, а задачата също изрично инструктира Pi да не променя файла. На 09.10.2026 г. Pi 1.1.0 прочете съдържанието на файла успешно. Първият отговор отне около две минути.
Можете също да използвате интерактивен режим: влезте в директорията, стартирайте pi, и след това изберете модел с /model. Една примерна задача в Бързия старт моли Pi да обясни как е организирано хранилището и как да се изпълнят неговите проверки. Наблюдавайте дали чете файловете и предоставя обяснение, след което потвърдете източника и идентификатора на модела в записите на заявките на OmniProxy.
Стартиране
pi стартира
- Първо cd до папката
- pi --version дава изход
- Името на модела се появява в долната част на интерфейса
Задача
Той прочете директорията
- Попитайте как е организирано хранилището
- Прегледайте файловете, които изброява
- Не разчитайте само на успешно запазване на конфигурацията
Логове
Видими в шлюза
- Източникът е Pi
- Идентификаторът на модела съвпада
- Дръжте ключа на локалната машина
Чести грешки
piне може да бъде намерен: Отворете отново терминала и опитайтеpi --versionотново. За инсталация с npm потвърдете, че глобалната bin директория е в PATH.- Персонализираните модели не се появяват в
/model: Потвърдете, чеmodels.jsonе в~/.pi/agent/, проверете далиapiKeyможе да бъде разрешен, и след това отворете отново/model. - Windows съобщава, че Bash не може да бъде намерен: Инсталирайте Git for Windows или задайте
shellPathв~/.pi/agent/settings.json. Наклонените черти в JSON трябва да бъдат написани два пъти. - Заявката е отхвърлена: Проверете дали
apiеopenai-completionsи чеbaseUrlзавършва на/v1. Не активирайте допълнителни опции за съвместимост само защото услугата се описва като съвместима. - Идентификаторът на модела е невалиден: Копирайте го отново от текущия списък на OmniProxy.
Официални препратки
За команди за инсталиране вижте Pi website и Quickstart. За файла с модели вижте Choose a Model и Configuration. За командната среда на Windows вижте Run Pi on Windows. За идентификаторите на модели, използвани в примерите, вижте Gemini model list и xAI models page.
Заменете всяка плейсхолдер стойност със стойности от вашата собствена конфигурация на OmniProxy. Никога не публикувайте истински ключ.
Запазен резултат или HTTP 200 сам по себе си не доказва пълна съвместимост на агента. Проверете източника и модела в записа на заявката в OmniProxy.