{"id":26573947,"url":"https://github.com/kacperfaber/chlss","last_synced_at":"2026-04-20T05:04:26.806Z","repository":{"id":196457664,"uuid":"624510553","full_name":"kacperfaber/chlss","owner":"kacperfaber","description":"TypeScript chess library written in TypeScript ❤","archived":false,"fork":false,"pushed_at":"2023-09-25T07:51:01.000Z","size":206,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-09-25T13:35:41.408Z","etag":null,"topics":["cd","chess","chess-engine","ci","continuous-integration","integration-testing","jest","npm","python","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/chlss","language":"TypeScript","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/kacperfaber.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":"SECURITY.md","support":null,"governance":null}},"created_at":"2023-04-06T16:20:25.000Z","updated_at":"2023-09-25T13:35:50.422Z","dependencies_parsed_at":null,"dependency_job_id":"7498eb12-5e44-4880-a6e1-3b83db4e0013","html_url":"https://github.com/kacperfaber/chlss","commit_stats":null,"previous_names":["kacperfaber/chlss"],"tags_count":5,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kacperfaber%2Fchlss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kacperfaber%2Fchlss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kacperfaber%2Fchlss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kacperfaber%2Fchlss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kacperfaber","download_url":"https://codeload.github.com/kacperfaber/chlss/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245044010,"owners_count":20551869,"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":["cd","chess","chess-engine","ci","continuous-integration","integration-testing","jest","npm","python","typescript"],"created_at":"2025-03-23T01:31:43.197Z","updated_at":"2026-04-20T05:04:26.761Z","avatar_url":"https://github.com/kacperfaber.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# chlss\n![GitHub package.json dynamic](https://img.shields.io/github/package-json/version/kacperfaber/chlss)\n[![Run Tests](https://github.com/kacperfaber/chlss/actions/workflows/test.yml/badge.svg)](https://github.com/kacperfaber/chlss/actions/workflows/test.yml)\n[![npm](https://github.com/kacperfaber/chlss/actions/workflows/publish.yml/badge.svg)](https://github.com/kacperfaber/chlss/actions/workflows/publish.yml)\n![npm](https://img.shields.io/npm/dt/chlss)\n\n\n\nSimple chess library, well typed by **TypeScript**.\n\n## Versions\n\n| #            |    DATE    | TYPE |\n|--------------|:----------:|------|\n| 1.0.0-beta.1 | 07.08.2023 | beta |\n| 1.0.0-beta.2 | 21.08.2023 | beta |\n| 1.0.0-beta.3 | 21.08.2023 | beta |\n| 1.0.0-beta.4 | 23.08.2023 | beta |\n| 1.0.0-beta.5 | 23.08.2023 | beta |\n\n## Installation\n\n```bash\nnpm i chlss\n```\n\n## Tutorial\n\n#### 1. Initialize the board\n\n```ts\nimport {BoardObj} from \"chlss\";\n\n// Will create an empty board,\nconst board = new BoardObj();\n\n// You can use constructor \n// parameter to specify initial FEN.\n\nconst boardWithFen = new BoardObj(\"\u003cinvalid-fen😅\u003e\");\n```\n\n#### 2. Set FEN on board\n\n```ts\nconst board = new BoardObj();\n\n// Will load FEN position \"FEN\" to board.\nboard.fen(\"FEN\");\n```\n\n#### 3. Get the legal moves\n\n```ts\nimport {IMove} from \"./move\";\nconst board = new BoardObj();\n\n// Will return all legal moves in UCI.\nconst uci: string[] = board.legalMovesUci();\n\n// Will return moves as chlss move.\nconst moves: IMove[] = board.legalMoves();\n```\n\n#### 4. Push the move\n\n```ts\nconst board = new BoardObj();\n\n// Will push e4 move.\nboardObj.pushUci(\"e2e4\");\n```\n\n#### 5. Get FEN representation of board.\n\n```ts\nconst board = new BoardObj();\n\n// Will return FEN representation of the board.\nconst fen = board.fen();\n```\n\n#### 6. Is the game ended?\n\n```ts\nimport {Termination} from \"./termination\";\n\nconst board = new BoardObj();\n\n// Will return instance of Termination, \n// if the game is ended.\nlet t: Termination | undefined = board.getTermination();\n```\n\n#### 7. Get colour to move\n\n```ts\nconst board = new BoardObj();\n\n// Will return colour to move.\nconst toMove: Colour = board.getColour();\n```\n\n## Reporting an issues\n\n**chlss** is well tested using thousands of random positions, but please report any issue you will see.\n\u003cbr\u003e\n\u003cbr\u003e\nThank You 😎\n\n## Author\n\nKacper Faber\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkacperfaber%2Fchlss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkacperfaber%2Fchlss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkacperfaber%2Fchlss/lists"}