{"id":21261854,"url":"https://github.com/ebemunk/node-uci","last_synced_at":"2025-07-25T05:37:40.014Z","repository":{"id":9987074,"uuid":"61177975","full_name":"ebemunk/node-uci","owner":"ebemunk","description":"UCI Protocol for node.js - talk to chess engines painlessly","archived":false,"fork":false,"pushed_at":"2022-02-15T00:00:28.000Z","size":1730,"stargazers_count":46,"open_issues_count":4,"forks_count":14,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-13T21:57:42.392Z","etag":null,"topics":["chess","chess-engine","uci"],"latest_commit_sha":null,"homepage":"https://ebemunk.github.io/node-uci/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ebemunk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-15T04:41:05.000Z","updated_at":"2024-02-18T06:11:34.000Z","dependencies_parsed_at":"2022-08-07T05:15:22.120Z","dependency_job_id":null,"html_url":"https://github.com/ebemunk/node-uci","commit_stats":{"total_commits":133,"total_committers":9,"mean_commits":"14.777777777777779","dds":0.6390977443609023,"last_synced_commit":"f643122d64e523899179b7f0c60d1439a6364f67"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebemunk%2Fnode-uci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebemunk%2Fnode-uci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebemunk%2Fnode-uci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebemunk%2Fnode-uci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebemunk","download_url":"https://codeload.github.com/ebemunk/node-uci/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225674968,"owners_count":17506272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chess","chess-engine","uci"],"created_at":"2024-11-21T04:56:07.723Z","updated_at":"2024-11-21T04:56:08.446Z","avatar_url":"https://github.com/ebemunk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# node-uci\n\nnode-uci is an implementation of the [Universal Chess Interface](http://www.shredderchess.com/chess-info/features/uci-universal-chess-interface.html) protocol for node.js. In short, you can talk to engines (like Stockfish, Rybka, etc.) from node.js without any headaches. Abstracts away the pesky communication and parsing of UCI and provides a sane API to communicate with engines.\n\n[![Build Status](https://travis-ci.org/ebemunk/node-uci.svg?branch=master)](https://travis-ci.org/ebemunk/node-uci)\n[![Code Climate](https://codeclimate.com/github/ebemunk/node-uci/badges/gpa.svg)](https://codeclimate.com/github/ebemunk/node-uci)\n[![Test Coverage](https://codeclimate.com/github/ebemunk/node-uci/badges/coverage.svg)](https://codeclimate.com/github/ebemunk/node-uci/coverage)\n\n## Install\n\nThrough npm with `npm install node-uci`.\n\n## Usage / Docs\n\n[Usage examples and documentation](https://ebemunk.github.io/node-uci/)\n\n## TLDR;\n\n```javascript\nimport { Engine } from 'node-uci'\n// or\nconst Engine = require('node-uci').Engine\n\n// async/await\nconst engine = new Engine('engine/executable/path')\nawait engine.init()\nawait engine.setoption('MultiPV', '4')\nawait engine.isready()\nconsole.log('engine ready', engine.id, engine.options)\nconst result = await engine.go({ nodes: 2500000 })\nconsole.log('result', result)\nawait engine.quit()\n\n//promises with chain\nconst engine = new Engine('engine/executable/path')\nengine\n  .chain()\n  .init()\n  .setoption('MultiPV', 3)\n  .position('r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R b KQkq - 3 3')\n  .go({ depth: 15 })\n  .then(result =\u003e {\n    console.log(result)\n  })\n```\n\n## License\n\nMIT\n\n## Contribute\n\nPRs always welcome\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febemunk%2Fnode-uci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febemunk%2Fnode-uci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febemunk%2Fnode-uci/lists"}