{"id":15853689,"url":"https://github.com/ivangabriele/firept","last_synced_at":"2025-08-21T17:06:21.584Z","repository":{"id":198342490,"uuid":"700623249","full_name":"ivangabriele/firept","owner":"ivangabriele","description":"A ChatGPT plugin to give ChatGPT extra powers.","archived":false,"fork":false,"pushed_at":"2024-04-27T14:22:10.000Z","size":3982,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-01T14:06:45.130Z","etag":null,"topics":["chatgpt","chatgpt-plugin","chatgpt-plugins","openai","plugin","plugins"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivangabriele.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-05T00:45:19.000Z","updated_at":"2024-05-03T09:54:12.205Z","dependencies_parsed_at":null,"dependency_job_id":"dd8b99bc-9b35-4d36-8098-33e1dd1ad9b7","html_url":"https://github.com/ivangabriele/firept","commit_stats":null,"previous_names":["ivangabriele/firept"],"tags_count":0,"template":false,"template_full_name":"ivangabriele/template-base","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Ffirept","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Ffirept/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Ffirept/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Ffirept/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivangabriele","download_url":"https://codeload.github.com/ivangabriele/firept/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648977,"owners_count":20972945,"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":["chatgpt","chatgpt-plugin","chatgpt-plugins","openai","plugin","plugins"],"created_at":"2024-10-05T19:22:18.401Z","updated_at":"2025-04-07T12:18:00.770Z","avatar_url":"https://github.com/ivangabriele.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"FirePT Logo\" height=\"128\" src=\"https://raw.githubusercontent.com/ivangabriele/firept/main/docs/assets/logo.png\" /\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eFirePT\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eAPIfy your project workspace, allowing AI to interact with it.\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/firept\"\u003e\n    \u003cimg alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/firept?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ivangabriele/firept/blob/main/LICENSE\"\u003e\n    \u003cimg alt=\"AGPL-3.0 license\" src=\"https://img.shields.io/github/license/ivangabriele/firept?style=for-the-badge\u0026labelColor=000\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ivangabriele/firept/actions?query=branch%3Amain+workflow%3AUnit\"\u003e\n    \u003cimg alt=\"CI Unit Workflow\" src=\"https://img.shields.io/github/actions/workflow/status/ivangabriele/firept/unit.yml?branch=main\u0026label=Unit\u0026style=for-the-badge\u0026labelColor=000\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ivangabriele/firept/actions?query=branch%3Amain+workflow%3AE2E\"\u003e\n    \u003cimg alt=\"CI E2E Workflow\" src=\"https://img.shields.io/github/actions/workflow/status/ivangabriele/firept/e2e.yml?branch=main\u0026label=E2E\u0026style=for-the-badge\u0026labelColor=000\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e [!NOTE]  \n\u003e This is a work in progress and is still under heavy testing.  \n\u003e This doesn't work out of the box yet.\n\n- [Introduction](#introduction)\n- [Features](#features)\n  - [Features](#features-1)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n  - [Setting up PublicHost](#setting-up-publichost)\n  - [Preparing the workspace](#preparing-the-workspace)\n  - [Running FirePT](#running-firept)\n  - [Using FirePT](#using-firept)\n    - [With OpenAI Custom GPT](#with-openai-custom-gpt)\n- [Contributing](#contributing)\n\n---\n\n## Introduction\n\nFirePT is designed to enhance the capabilities of AI LLMs that accepts API actions (like custom GPTs) by providing an\nAPI to interact with the current working directory. It allows for performing various tasks like reading or editing\nfiles, running shell commands, and more to come.\n\nYou'll need to publicly expose the local FirePT via a domain and a secure HTTPS. FirePT already integrates\n[PublicHost](https://publichost.org) which does just that by tunneling your local server to a public domain with HTTPS.\nPublicHost is fully open-source and can be self-hosted. You can also use other similar services like\n[Ngrok](https://ngrok.com) or [LocalTunnel](https://localtunnel.github.io/www/).\n\n## Features\n\n### Features\n\nAll features can only be run within the declared project directory.\n\n- [x] OpenAPI documentation\n- [x] List files\n- [x] Read files\n- [x] Create files and directories\n- [x] Edit files\n- [x] Delete files and directories\n- [x] Move (rename) files and directories\n- [x] Run shell commands\n- [x] Local, per-project config file\n- [ ] Actions tracking (to help AI keep track of previous actions when starting new chat sessions)\n- [ ] Run shell commands in background pods (to avoid blocking the server response on long-running and forever-running\n      commands) with logs, exit and kill endpoints\n- [x] Read Github issues\n- [ ] Comment Github issues\n- [ ] Read Github pull requests\n- [ ] Comment Github pull requests\n- [ ] Partially read files (from line to line)\n- [ ] Partially edit files (from line to line)\n- [ ] Fine-grained feature control (to enable/disable features)\n\n\u003e [!IMPORTANT]  \n\u003e I'm not among AI-Will-Take-Over-The-World believers. However, the file created as well as the shell commands could\n\u003e definitely do whatever they want to your system. Carefully watch FirePT logs and generated source code.\n\u003e\n\u003e **A good practice is to run FirePT in a sandboxed environment (container, VM, etc.) and to never run it as root.**\n\n## Getting Started\n\n### Prerequisites\n\nBefore installing FirePT, ensure you have the following:\n\n- Node.js (version 20 or later)\n- npm (usually comes with Node.js)\n\n### Installation\n\nInstall FirePT globally using npm:\n\n```sh\nnpm i -g firept\n```\n\n### Setting up PublicHost\n\n**To be updated.**\n\n### Preparing the workspace\n\nAdd a `firept.yml` (or `firept.yaml`) file to the root of your project directory.\n\n```yaml\nserver:\n  apiKey: '****'\n  port: 9999\n\npublichost:\n  apiKey: '****'\n  host: publichost.org\n  subdomain: your-subdomain\n\n# If you don't use PublicHost but your own localhost public tunneling service (like ngrok or localtunnel):\n# customPublicUrl: 'https://example.org'\n\n# https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2022-11-28#authenticating-with-a-personal-access-token\n# https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens\nrepository:\n  provider: github\n  personalAccessToken: '****'\n  owner: your-github-username\n  name: your-repo-name\n\n# The following properties and sub-properties are all optional:\nworkspace:\n  # `.gitignore` files and `.git` directories are already ignored by FirePT,\n  # these are additional files and directories to ignore:\n  ignoredFiles:\n    - ./.yarn/**\n    - ...\n```\n\n\u003e [!IMPORTANT]  \n\u003e **!!! DO NOT COMMIT THE `firept.yml` FILE TO YOUR REPOSITORY.  \n\u003e ADD IT TO YOUR `.gitignore` FILE !!!**\n\nYou can also add it you global `.gitignore` file to avoid polluting your team repo with your local settings.\n\n### Running FirePT\n\nTo start the FirePT server, run (within your project directory):\n\n```sh\nfire start\n```\n\n### Using FirePT\n\n#### With OpenAI Custom GPT\n\n**To be updated.**\n\n## Contributing\n\nWe welcome contributions to FirePT! Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of\nconduct and the process for submitting pull requests.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangabriele%2Ffirept","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivangabriele%2Ffirept","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangabriele%2Ffirept/lists"}