opencode-rust ni nini?
opencode-rust ni wakala wa uandishi wa msimbo wa AI wa chanzo wazi, uliotekelezwa kwa Rust. Unatoa kiolesura cha mtumiaji cha terminali, utekelezaji wa amri za mara moja, seva ya HTTP, usaidizi wa Web, na muunganisho wa ACP kwa mtiririko wa kazi wa mawakala wa AI wa ndani.
Injini hii inachanganya vipindi, utekelezaji wa zana, MCP, LSP, uelekezaji wa watoa huduma, hifadhi ya SQLite, na daraja la programu-jalizi la TypeScript. Inaendesha bila Docker au mazingira mengine ya kuendeshea kontena. Rust hutumika kuweka matumizi ya rasilimali ndani ya mipaka kupitia miili ya maombi inayotumwa kwa mtiririko, historia ya mazungumzo inayotegemea SQLite, miundo ya zana iliyohifadhiwa kwenye akiba, na hali iliyokusanywa kwa kila saraka yenye uondoaji wa LRU na TTL.
Chagua njia ya usakinishaji
Njia zote zinazotumika za usakinishaji hutoa amri ya opr, lakini amri hiyo hufanya kazi kwa njia tofauti kulingana na jinsi ilivyosakinishwa.
Sakinisha kwa npm
npm inatumia Linux, macOS, na Windows na hupakua kifurushi cha binary kilichojengwa tayari kwa jukwaa la sasa. Haijengi mradi wakati wa usakinishaji.
npm install -g opencode-rustKianzisha npm ni hati ya Node inayotuma amri kwa injini. Vifurushi vya majukwaa vinavyopatikana vinajumuisha macOS ARM64 na x64, miundo ya Linux x64 na ARM64 GNU, Linux x64 musl, na Windows x64 MSVC.
Sakinisha kwa Homebrew
Kwenye macOS au Linux, sakinisha fomula ya Homebrew kwa:
brew install vakandi/tap/opencode-rustHii husakinisha opr bila kuweka binary ya opencode kwenye kiambishi awali cha Homebrew, hivyo haifichi CLI ya OpenCode ya upstream. Homebrew hujenga kutoka kwenye msimbo chanzo na kwa hivyo husakinisha toolchain ya Rust kama tegemezi la ujenzi.
Jenga kutoka kwenye msimbo chanzo
Fanya clone ya hifadhi na uendeshe kisakinishi:
git clone https://github.com/vakandi/opencode-rust.git
cd opencode-rust
./install.shKisakinishi hujenga binary ya toleo la release na kusakinisha opr pamoja na njia mkato za mawakala. Huhakiki alama za vidole za misimbo ya Rust na faili za manifest za Cargo, hivyo mradi ambao haujabadilika haujengwi tena. Tumia --force ili kujenga tena bila kujali hali.
Unapotumia Homebrew au kisakinishi cha msimbo chanzo, opr ndiyo binary yenyewe ya injini. Tumia amri ndogo iliyo wazi unapopitisha bendera:
opr tui --some-flagKwa npm, kianzisha hutuma bendera kwenye TUI, hivyo opr --some-flag hufasiriwa kwa njia tofauti.
Andaa mazingira
Node.js 18 au toleo jipya zaidi linahitajika kwa daraja la programu-jalizi na kwa kuanzisha seva za MCP kupitia npx, bila kujali njia ya usakinishaji.
Pia unahitaji ufunguo wa mtoa huduma kabla ya kuendesha kwa mara ya kwanza. Kwa mfano, weka ufunguo wa Anthropic kwenye shell yako:
export ANTHROPIC_API_KEY=sk-ant-...Tumia usanidi wa mtoa huduma na kitambulisho unaoungwa mkono na usanidi wako wa OpenCode. Inapowezekana, weka funguo nje ya udhibiti wa matoleo na historia ya shell.
Endesha kipindi chako cha kwanza
Anzisha TUI shirikishi
Anzisha kiolesura cha terminali kwa:
oprTUI ndiyo kiolesura chaguo-msingi cha mwingiliano. Huonyesha wakala na modeli inayotumika, hutuma matokeo ya msaidizi kwa mtiririko, na hutoa ukamilishaji wa amri kupitia kidirisha ibukizi cha /.
Endesha kidokezo kimoja
Kwa kidokezo cha kiotomatiki kinachoendelea hadi kukamilika, tumia run:
opr run "check this repo for risks"Tofauti na mwito rahisi wa mtoa huduma, run huendesha mzunguko kamili wa kidokezo cha kipindi. Zana hutekelezwa, mawakala wadogo wanaosubiri hukamilika, na kazi za chinichini hukamilishwa kabla mchakato haujatoka.
Anzisha seva ya HTTP
Ili kufichua injini kupitia seva yake ya HTTP, endesha:
opr serve --port 3000Seva hutumia injini ileile ya vipindi na inasaidia miundombinu ya HTTP, utiririshaji, na mawakala ya mradi.
Tumia mawakala wenye majina
TUI ina mawakala wa ndani wa build na plan. Wakala wa build ndiye wakala chaguo-msingi wa maendeleo mwenye ufikiaji kamili, huku plan ikiwa imekusudiwa uchanganuzi na uchunguzi wa kusoma pekee. Bonyeza Tab ili kubadilisha mawakala kwenye TUI.
Kisakinishi cha msimbo chanzo pia huunda njia mkato za mawakala wenye majina:
gilfoyle "fix this failing test"
setbon "write 5 ad hooks"
googlebot "audit my meta tags"Njia hizi mkato huendesha kidokezo kimoja kwa thamani inayolingana ya --agent. Kuiita bila kidokezo huchapisha maelezo ya matumizi kwenye kosa la kawaida na hutoka kwa hali 2.
Mawakala wa ziada wanaweza kusanidiwa katika usanidi wako wa OpenCode na kwenye hifadhi za mawakala za oh-my-opencode katika ~/.omo/omo.jsonc au ~/.config/omo/omo.jsonc. Usanidi wa mawakala kutoka maeneo haya unaweza kubatilisha chaguo-msingi la programu-jalizi, na mawakala hulinganishwa kwa kutumia slug za kanoni hata majina yao ya kuonyeshwa yanapotofautiana.
Sanidi miradi na vipindi
Faili za usanidi huunganishwa wakati wa kutafuta kuelekea juu kutoka kwenye saraka ya kazi. Majina yanayotumika katika kiwango cha mradi ni:
opencode.jsoncopencode.json.opencode/opencode.jsonc.opencode/opencode.json
Usanidi chaguo-msingi wa kimataifa huhifadhiwa kwenye ~/.config/opencode/opencode.json au toleo lake la JSONC. Ufafanuzi wa mawakala unaweza pia kuhifadhiwa katika maeneo ya oh-my-opencode yaliyoelezwa hapo juu.
Vipindi huhifadhiwa katika SQLite na vinaunga mkono uundaji, uendelezaji, uundaji wa matawi, uingizaji na uhamishaji, pamoja na mahusiano ya mzazi na mtoto. Ili kukagua eneo la hifadhidata, tumia:
opr db pathIli kukagua maeneo mengine ya wakati wa utekelezaji, likiwemo saraka ya data inayotumiwa na hifadhi ya proksi, tumia:
opr debug pathsTumia zana za MCP
opencode-rust inasaidia MCP kupitia stdio na HTTP. Seva za MCP hupakiwa kutoka kwenye usanidi, huanzishwa kwa sambamba ndani ya kikomo cha kuanza cha sekunde 90, na kusajiliwa katika sajili ileile ya zana kwa kila zamu inayotumiwa na wakala.
Hii inamaanisha kuwa zana zinazowasilishwa na seva ya MCP zinaweza kufikia modeli na kutekelezwa kama sehemu ya zamu ya wakala. Hakikisha Node.js na vifurushi vinavyohitajika vya seva ya MCP vinapatikana kabla ya kuanza kipindi.
Mradi hutumia JSON yenye mstari mmoja kwa kila rekodi kwa usafirishaji wa MCP stdio. Hii ni tofauti na upangaji wa Content-Length wa LSP, kwa hiyo usanidi wa seva ya MCP unapaswa kulenga usafirishaji na ufafanuzi unaooana na MCP.
Hakikisha kazi za chinichini zinakamilika
Amri ya run inakubali muda wa kusubiri ukamilishaji wa kazi za chinichini:
opr run --wait-background-timeout 120 "run the requested task"Baada ya zamu kuu, injini husubiri kipindi kiwe bila shughuli, hutiririsha fremu za watoto zilizorekodiwa na oh-my-opencode, na hukagua hali ya kuendelea. Muda chaguo-msingi wa kusubiri ni sekunde 120.
Mchakato wa kukamilisha huruhusu kushindwa bila kuning'inia: hifadhidata ambazo hazipo, leja ambazo hazipo, JSON iliyoharibika, na maingizo ya zamani yaliyo hai huchukuliwa kuwa hayana kazi iliyobaki. Tumia muda mfupi au mrefu zaidi wa kusubiri wakati mtiririko wako wa kazi unahitaji mipaka tofauti.
Sanidi proksi inayozunguka
Injini inajumuisha kisambaza mbele cha ndani cha HTTP na CONNECT kinachozunguka kati ya watahiniwa wa proksi za makazi. Huchagua seva ya upstream iliyotumika zamani zaidi takriban kila sekunde 120, hujaribu watahiniwa kabla ya kuwatumia, na huweka karantini maingizo yaliyokataliwa.
Faili chaguo-msingi ya kundi iko katika:
- macOS:
~/Library/Application Support/opencode/proxy-pool.txt - Linux:
~/.local/share/opencode/proxy-pool.txt - Windows:
%LOCALAPPDATA%\opencode\proxy-pool.txt
Weka OPENCODE_PATHS_ROOT ili kuhamisha eneo la data. Njia ya kundi inayotokana ni $OPENCODE_PATHS_ROOT/opencode/proxy-pool.txt.
Maingizo hutumia mwenyeji na mlango, pamoja na vitambulisho na metadata vya hiari:
198.51.100.10:8080
203.0.113.24:1080
198.51.100.31:3128:myuser:mypass
203.0.113.77:8000 | note:rotates hourlyWeka faili ikiwa na maingizo tupu pekee. Ingawa mistari inayoanza na # huonyeshwa katika baadhi ya mifano kama maoni, kichanganua hakitumii sintaksia ya maoni; mistari hiyo hupuuzwa kama maingizo yenye muundo usio sahihi. Watahiniwa walioshindwa na taarifa za umiliki huhifadhiwa katika faili jirani za proxy-quarantine.json na proxy-claims.json.
Uanzishaji wa proksi lazima ufanywe kupitia opencode_proxy::start() badala ya kusafirisha vigezo vya proksi wewe mwenyewe. Mteja lazima apokee usanidi wa proksi kabla ya sajili ya watoa huduma kujengwa. Kundi lililo tupu au lisiloweza kusomeka hurejesha hitilafu badala ya kuanzisha msikilizaji ambaye angeshindwa kwa kila ombi.
Chunguza safu ya amri
CLI inajumuisha amri za matumizi shirikishi, vipindi, huduma, usanidi, uthibitishaji, mawakala, utatuzi, MCP, uhamishaji wa data, na matengenezo:
tui attach run serve web acp models
session stats db config auth agent debug
mcp export import github pr upgrade uninstall
generate versionChaguo muhimu za run zinajumuisha --continue, --session, --fork, --agent, --format, --title, --dir, --port, --variant, --thinking, na --wait-background-timeout.
Uendelezaji na uthibitishaji
Ikiwa unafanyia kazi hazina, endesha majaribio na ukaguzi wa eneo la kazi kwa kutumia:
cargo test --workspace
cargo build --release --bin opencode
cargo clippy --workspace --all-targetsHazina imepangwa katika crate za CLI, seva, vipindi, mawakala, zana, watoa huduma, MCP, programu-jalizi, LSP, hifadhi, TUI, ruhusa, njia, proksi, na zana zinazohusiana. Nyaraka za kila crate zinapatikana katika saraka ya docs/.
Hitimisho
opencode-rust hutoa injini ya OpenCode inayotegemea Rust yenye TUI shirikishi, utekelezaji kamili wa vipindi, mawakala wanaoweza kusanidiwa, ujumuishaji wa MCP na programu-jalizi, hifadhi ya SQLite, na ufikiaji wa HTTP. Anza kwa npm, Homebrew, au ujenzi kutoka kwenye msimbo wa chanzo, sanidi ufunguo wa mtoa huduma, kisha utumie opr, opr run, au opr serve kulingana na mtiririko wako wa kazi.
Mradi umetolewa chini ya leseni ya MIT na hauhusiani na timu ya OpenCode.
