{"id":28566944,"url":"https://github.com/valyentdev/fragments-on-valyent","last_synced_at":"2025-06-10T15:40:33.785Z","repository":{"id":274610439,"uuid":"923135652","full_name":"valyentdev/fragments-on-valyent","owner":"valyentdev","description":"An open-source alternative to Claude Artifacts/V0/... on Valyent. A fork from Fragments (E2B).","archived":false,"fork":false,"pushed_at":"2025-01-28T10:12:51.000Z","size":4672,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-31T23:17:40.677Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://valyent.cloud","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/valyentdev.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-27T17:46:53.000Z","updated_at":"2025-01-31T19:57:48.000Z","dependencies_parsed_at":"2025-01-28T11:35:01.276Z","dependency_job_id":null,"html_url":"https://github.com/valyentdev/fragments-on-valyent","commit_stats":null,"previous_names":["valyentdev/geppetto"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valyentdev%2Ffragments-on-valyent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valyentdev%2Ffragments-on-valyent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valyentdev%2Ffragments-on-valyent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valyentdev%2Ffragments-on-valyent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valyentdev","download_url":"https://codeload.github.com/valyentdev/fragments-on-valyent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valyentdev%2Ffragments-on-valyent/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259104291,"owners_count":22805848,"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":[],"created_at":"2025-06-10T15:40:06.696Z","updated_at":"2025-06-10T15:40:33.775Z","avatar_url":"https://github.com/valyentdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Geppetto by Valyent\n\nThis is an open-source fork from [Fragments](https://github.com/e2b-dev/fragments), which is an open-source alternative to apps like [Anthropic's Claude Artifacts](https://www.anthropic.com/news/claude-3-5-sonnet), Vercel [v0](https://v0.dev), or [GPT Engineer](https://gptengineer.app).\n\nPowered by the [Valyent TypeScript SDK](https://github.com/valyentdev/valyent.ts).\n\n![Preview](https://github.com/valyentdev/geppetto/blob/main/preview.png)\n\n## Features\n\n- Based on Next.js 14 (App Router, Server Actions), shadcn/ui, TailwindCSS, Vercel AI SDK.\n- Uses the [Valyent TypeScript SDK](https://github.com/valyentdev/valyent.ts) by [Valyent](https://valyent.cloud) to securely execute code generated by AI.\n- Streaming in the UI.\n- Can install and use any package from npm, pip.\n- Supported stacks ([add your own](#adding-custom-personas)):\n  - 🔸 Python interpreter\n  - 🔸 Next.js\n  - 🔸 Vue.js\n  - 🔸 Streamlit\n  - 🔸 Gradio\n- Supported LLM Providers ([add your own](#adding-custom-llm-models)):\n  - 🔸 OpenAI\n  - 🔸 Anthropic\n  - 🔸 Google AI\n  - 🔸 Mistral\n  - 🔸 Groq\n  - 🔸 Fireworks\n  - 🔸 Together AI\n  - 🔸 Ollama\n\n**Make sure to give us a star!**\n\n\u003cimg width=\"165\" alt=\"Screenshot 2024-04-20 at 22 13 32\" src=\"https://github.com/mishushakov/llm-scraper/assets/10400064/11e2a79f-a835-48c4-9f85-5c104ca7bb49\"\u003e\n\n## Get started\n\n### Prerequisites\n\n- [git](https://git-scm.com)\n- Recent version of [Node.js](https://nodejs.org) and npm package manager\n- [Valyent API Key](https://valyent.cloud)\n- LLM Provider API Key\n\n### 1. Clone the repository\n\nIn your terminal:\n\n```\ngit clone https://github.com/valyentdev/geppetto.git\n```\n\n### 2. Install the dependencies\n\nEnter the repository:\n\n```\ncd geppetto\n```\n\nRun the following to install the required dependencies:\n\n```\nnpm i\n```\n\n### 3. Set the environment variables\n\nCreate a `.env.local` file and set the following:\n\n```sh\n# Get your API key here - https://valyent.cloud\nVALYENT_API_KEY=\"\u003cyour-valyent-api-key\u003e\"\nVALYENT_ORGANIZATION=\"\u003cyour-valyent-organization\u003e\"\n\n# OpenAI API Key\nOPENAI_API_KEY=\n\n# Other providers\nANTHROPIC_API_KEY=\nGROQ_API_KEY=\nFIREWORKS_API_KEY=\nTOGETHER_API_KEY=\nGOOGLE_AI_API_KEY=\nGOOGLE_VERTEX_CREDENTIALS=\nMISTRAL_API_KEY=\nXAI_API_KEY=\n\n### Optional env vars\n\n# Domain of the site\nNEXT_PUBLIC_SITE_URL=\n\n# Disabling API key and base URL input in the chat\nNEXT_PUBLIC_NO_API_KEY_INPUT=\nNEXT_PUBLIC_NO_BASE_URL_INPUT=\n\n# Rate limit\nRATE_LIMIT_MAX_REQUESTS=\nRATE_LIMIT_WINDOW=\n\n# Vercel/Upstash KV (short URLs, rate limiting)\nKV_REST_API_URL=\nKV_REST_API_TOKEN=\n\n# Supabase (auth)\nSUPABASE_URL=\nSUPABASE_ANON_KEY=\n\n# PostHog (analytics)\nNEXT_PUBLIC_POSTHOG_KEY=\nNEXT_PUBLIC_POSTHOG_HOST=\n```\n\n### 4. Start the development server\n\n```\nnpm run dev\n```\n\n### 5. Build the web app\n\n```\nnpm run build\n```\n\n## Customize\n\n### Adding custom personas\n\n1. Make sure [Valyent CLI](https://docs.valyent.cloud/cli#installation) is installed and you're logged in.\n\n2. Add a new folder under [sandbox-templates/](sandbox-templates/)\n\n_TO BE COMPLETED_\n\n### Adding custom LLM models\n\n1. Open [lib/models.json](lib/models.ts) in your code editor.\n\n2. Add a new entry to the models list:\n\n   ```json\n   {\n     \"id\": \"mistral-large\",\n     \"name\": \"Mistral Large\",\n     \"provider\": \"Ollama\",\n     \"providerId\": \"ollama\"\n   }\n   ```\n\n   Where id is the model id, name is the model name (visible in the UI), provider is the provider name and providerId is the provider tag (see [adding providers](#adding-custom-llm-providers) below).\n\n### Adding custom LLM providers\n\n1. Open [lib/models.ts](lib/models.ts) in your code editor.\n\n2. Add a new entry to the `providerConfigs` list:\n\n   Example for fireworks:\n\n   ```ts\n   fireworks: () =\u003e createOpenAI({ apiKey: apiKey || process.env.FIREWORKS_API_KEY, baseURL: baseURL || 'https://api.fireworks.ai/inference/v1' })(modelNameString),\n   ```\n\n3. Optionally, adjust the default structured output mode in the `getDefaultMode` function:\n\n   ```ts\n   if (providerId === 'fireworks') {\n     return 'json'\n   }\n   ```\n\n4. Optionally, add a new logo under [public/thirdparty/logos](public/thirdparty/logos)\n\n## Contributing\n\nAs an open-source project, we welcome contributions from the community. If you are experiencing any bugs or want to add some improvements, please feel free to open an issue or pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalyentdev%2Ffragments-on-valyent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvalyentdev%2Ffragments-on-valyent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalyentdev%2Ffragments-on-valyent/lists"}