Mirror of github.com/gptscript-ai/gptscript
  • Go 98.9%
  • Shell 0.9%
  • Makefile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Thorsten Klein eb776a3ed4
Some checks failed
integration / integration (windows-latest) (push) Waiting to run
test / test (windows-latest) (push) Waiting to run
smoke / check-label (push) Successful in 1s
Validate docs build / validate-docs (push) Failing after 31s
integration / integration (ubuntu-22.04) (push) Successful in 48s
smoke / gpt-4o-mini-2024-07-18 (push) Failing after 56s
smoke / gpt-4o-2024-08-06 (push) Failing after 57s
release / release-tag (push) Successful in 1m25s
smoke / claude-3-7-sonnet-20250219 (push) Failing after 1m13s
test / test (ubuntu-22.04) (push) Failing after 11m0s
fix(engine): keep filter input under env allowlist (#28)
With `GPTSCRIPT_TOOL_ENV_ALLOWLIST=true`, input and output filters lost their payload: the runner hands an output filter `{output, continuation, chat}` and an input filter `{input}`, filters declare no `Param` for those, and the allowlist only exempted `TOOL_CALL_ARGS`/`TOOL_CALL_BODY`. A filter reading `$OUTPUT` (e.g. bpai-tools' result-formatter) got an empty string.

The exemption is keyed by the call's tool category, so an ordinary tool call still cannot receive these keys as undeclared env, and a filter call still cannot pass any other undeclared key.

- `newCommand` / `runHTTP` pass `ctx.ToolCategory`; daemons use `NoCategory`.
- Tests: filter keys survive for input/output categories and are still refused for an ordinary call; a filter call cannot slip another undeclared key through.
- No behaviour change with the flag off (default).
2026-10-18 17:23:16 +00:00
.github/workflows ci(release): drop private-module auth (#25) 2026-10-18 12:19:35 +00:00
.vscode feat: add ability to gracefully stop runs (#950) 2025-02-24 14:41:56 -05:00
docs docs: add upstream attribution and NOTICE (#22) 2026-10-18 10:25:09 +00:00
examples chore: rename module path to git.basepeak.dev/basepeak-ai/gptscript 2026-06-13 15:47:35 +02:00
integration chore: add multiline parsing and refactor share cred behavior 2024-10-09 12:02:52 -07:00
internal chore: allow easy embedding on gptscript 2024-06-13 22:26:04 -04:00
pkg fix(engine): keep filter input under env allowlist (#28) 2026-10-18 17:23:16 +00:00
scripts chore: rename module path to git.basepeak.dev/basepeak-ai/gptscript 2026-06-13 15:47:35 +02:00
static chore: migrate to golangci-lint v2 (#962) 2025-04-16 13:57:58 -04:00
tools/gendocs chore: rename module path to git.basepeak.dev/basepeak-ai/gptscript 2026-06-13 15:47:35 +02:00
.ackrc Separate Docker UI build 2024-02-22 12:17:12 -07:00
.gitattributes chore: test on windows 2024-05-31 23:15:14 -07:00
.gitignore fix(openai): trim context for small-window models instead of hard-failing (#2) 2026-07-10 04:46:34 +00:00
.golangci.yml chore: migrate to golangci-lint v2 (#962) 2025-04-16 13:57:58 -04:00
.goreleaser.yml ci: publish gptscript releases to Forgejo only (#19) 2026-10-17 20:51:13 +00:00
go.mod fix(deps): bump basepeak-ai modules to patched mains (#23) 2026-10-18 10:43:49 +00:00
go.sum fix(deps): bump basepeak-ai modules to patched mains (#23) 2026-10-18 10:43:49 +00:00
LICENSE Refactor Tool to break out parameters 2024-02-13 11:30:19 -07:00
main.go chore: rename module path to git.basepeak.dev/basepeak-ai/gptscript 2026-06-13 15:47:35 +02:00
Makefile chore: bump go dependencies 2026-04-10 09:59:20 -04:00
NOTICE docs: add upstream attribution and NOTICE (#22) 2026-10-18 10:25:09 +00:00
README.md docs: add upstream attribution and NOTICE (#22) 2026-10-18 10:25:09 +00:00

GPTScript

Fork notice / Attribution

This repository is a fork of GPTScript, originally developed by Acorn Labs, Inc. (now Obot Inc.) and the gptscript-ai contributors. The upstream project has been archived. This fork is maintained by BasePeak GmbH at https://git.basepeak.dev/basepeak-ai/gptscript.

BasePeak GmbH has modified files in this repository since the fork on 2026-06-13. The git history records every change. See NOTICE for details.

Demo

GPTScript is a framework that allows Large Language Models (LLMs) to operate and interact with various systems. These systems can range from local executables to complex applications with OpenAPI schemas, SDK libraries, or any RAG-based solutions. GPTScript is designed to easily integrate any system, whether local or remote, with your LLM using just a few lines of prompts.

Here are some sample use cases of GPTScript:

  1. Chat with a local CLI - Try it!
  2. Chat with an OpenAPI compliant endpoint - Try it!
  3. Chat with local files and directories - Try it!
  4. Run an automated workflow - Try it!

Getting started

Download the archive for your platform and architecture (Linux, macOS universal, Windows; amd64 and arm64) from the releases page, extract it and put the gptscript binary on your PATH.

Or build and install it with Go:

go install git.basepeak.dev/basepeak-ai/gptscript@latest

Then run an example:

gptscript github.com/gptscript-ai/llm-basics-demo

A few notes:

  • You'll need an OpenAI API key
  • On Windows, if you add the folder containing gptscript.exe to your PATH, restart your terminal for the change to take effect
  • The above script is a simple chat-based assistant. You can ask it questions and it will answer to the best of its ability.

Community

Report bugs and request features in the issue tracker.

License

Copyright (c) 2024-2026 Obot Inc. (formerly Acorn Labs, Inc.) (original work)

Modifications Copyright (c) 2026 BasePeak GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.