promptfile

A Markdown-like syntax for writing prompts. Includes an in-editor playground.

https://github.com/promptfile/promptfile

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A Markdown-like syntax for writing prompts. Includes an in-editor playground.

Basic Info
  • Host: GitHub
  • Owner: promptfile
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Homepage: https://promptfile.org
  • Size: 12.5 MB
Statistics
  • Stars: 127
  • Watchers: 3
  • Forks: 6
  • Open Issues: 0
  • Releases: 37
Created almost 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License Citation

README.md

Promptfile (.prompt)

main

ALERT: PROMPTFILE IS IN ALPHA AND IS SUBJECT TO CHANGE.

Promptfile is a Markdown-like templating syntax and playground designed to write and iterate on prompts easier and faster. Promptfile is entirely open-source and free-to-use.

Build and prototype your prompts where you and your projects live: VS Code.

The simple, human-readable syntax of a .prompt file makes it easy to understand and debug. To test your prompt, execute a single command and view the results of your request in the VS Code Playground.

Once your prompt is ready, call a function to load in your prompt in the language of your choice, a seamless and unobtrusive integration of Promptfile into your project.

  1. Read our documentation at promptfile.org
  2. Check out some examples in our examples repository.
  3. Download the VS Code extension to quickly run and iterate on a Promptfile.
  4. If you have any feature requests or bug repots, please file an issue
  5. If you are interested in contributing, would love to have you contribute. Feel free to read more about how to contribute.

Although we are an extremely early stage project, here are some of our current wishlist items for the project:

Language Wishlist

  • [ ] Adding Monaco support for .prompt files #200
  • [ ] Better diagnostics and error handling (for example #248)
  • [ ] Supporting more models, especially open source models
  • [ ] Supporting other languages that .prompt transpiles into

Playground Wishlist

  • [ ] Making the Playground more synchronous with your .prompt file
  • [ ] Improving visualizing version control of your prompts
  • [ ] Allow customizing the UI of the Playground

Project Wishlist

  • [ ] Supporting code execution for a function from localhost
  • [ ] More robust examples and complex use cases
  • [ ] Supporting people trying LLMs for the first time and open-source contributors

Apps and Packages

This project uses npm workspaces and Turborepo.

apps/

  • vscode-glass: VS Code extension for Promptfile
  • promptfile.org: a Next.js/Nextra app serving promptfile.org
  • demo: examples of using Promptfile

packages/

  • glasslib: .prompt client library, including CLI
  • language-server: LSP server providing Promptfile intellisense
  • rig: a React app for the VS Code Promptfile playground webview
  • ui: a React component library shared by web applications
  • util: random utilities shared by packages/apps
  • eslint-config-custom: eslint configurations (includes eslint-config-next and eslint-config-prettier)
  • tsconfig: tsconfig.jsons used throughout the monorepo

Development

bash npm ci npm run build

Usually you'll want to launch the VS Code extension in development mode. Use the Run Extension launch configuration (F5 keybinding). This will automatically run the build step if necessary.

Tests

To run all tests:

bash npm run test

Watch mode

Several packages contain tests that can be run in watch mode: packages/glasslib, packages/util

bash cd $package npm run test:watch

License

MIT © Promptfile

Owner

  • Name: promptfile
  • Login: promptfile
  • Kind: organization

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Promptfile
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Johnathan
    family-names: Rothfels
    email: john@promptfile.org
  - given-names: Elliott
    family-names: Burris
    email: elliott@promptfile.org
identifiers:
  - type: url
    value: 'https://github.com/promptfile/promptfile'
repository-code: 'https://github.com/promptfile/promptfile'
url: 'https://www.promptfile.org'
keywords:
  - LLM
  - Generative AI
  - DSL
license: MIT
commit: ee48980
version: v0.15.4
date-released: '2023-06-23'

GitHub Events

Total
  • Issues event: 6
  • Watch event: 21
Last Year
  • Issues event: 6
  • Watch event: 21

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
.github/workflows/publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • softprops/action-gh-release v1 composite
.github/workflows/version.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • changesets/action v1 composite
apps/vscode-glass/package.json npm
  • @types/glob ^8.1.0 development
  • @types/mocha ^10.0.1 development
  • @types/node 16.x development
  • @types/vscode ^1.78.0 development
  • @vscode/test-electron ^2.3.0 development
  • @vscode/vsce ^2.19.0 development
  • eslint-config-custom * development
  • glob ^8.1.0 development
  • mocha ^10.2.0 development
  • typescript ^5.0.4 development
  • @glass-lang/glassc *
  • @glass-lang/language-server *
  • @glass-lang/rig *
  • esbuild ^0.17.18
  • node-fetch ^3.3.1
  • vscode-languageclient ^8.1.0
package-lock.json npm
  • 870 dependencies
package.json npm
  • @changesets/changelog-github ^0.4.8 development
  • @changesets/cli ^2.26.1 development
  • eslint ^7.32.0 development
  • eslint-config-custom * development
  • prettier ^2.5.1 development
  • turbo ^1.9.3 development
packages/eslint-config-custom/package.json npm
  • @typescript-eslint/eslint-plugin ^5.59.5
  • eslint-config-next ^13.4.1
  • eslint-config-prettier ^8.3.0
  • eslint-config-turbo ^1.9.3
  • eslint-plugin-react 7.28.0
packages/glasslib/package.json npm
  • @types/chai ^4.3.5 development
  • @types/mocha ^10.0.1 development
  • chai ^4.3.7 development
  • eslint-config-custom * development
  • mocha ^10.2.0 development
  • ts-node ^10.9.1 development
  • tslib ^2.5.0 development
  • tsup ^6.7.0 development
  • typescript ^5.0.4 development
  • @glass-lang/util *
  • node-fetch ^2.6.11
packages/language-server/package.json npm
  • esbuild ^0.17.18 development
  • eslint-config-custom * development
  • @glass-lang/glassc *
  • vscode-languageserver ^8.1.0
  • vscode-languageserver-textdocument ^1.0.8
packages/rig/package.json npm
  • @types/vscode-webview ^1.57.1 development
  • esbuild ^0.17.18 development
  • eslint-config-custom * development
  • @vscode/webview-ui-toolkit ^1.2.2
  • react ^18.2.0
  • react-dom ^18.2.0
packages/util/package.json npm
  • @types/chai ^4.3.5 development
  • @types/mocha ^10.0.1 development
  • chai ^4.3.7 development
  • eslint-config-custom * development
  • mocha ^10.2.0 development
  • ts-node ^10.9.1 development
  • tslib ^2.5.0 development
  • tsup ^6.7.0 development
  • typescript ^5.0.4 development
apps/promptfile.org/package.json npm
  • @types/node 18.11.10 development
  • @types/react-inlinesvg ^1.0.0 development
  • typescript ^4.9.3 development
  • next ^13.0.6
  • nextra latest
  • nextra-theme-docs latest
  • react ^18.2.0
  • react-dom ^18.2.0
  • react-inlinesvg ^3.0.2
  • shiki ^0.14.2
packages/tsconfig/package.json npm