├── .github └── ISSUE_TEMPLATE │ └── config.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md └── gsoc ├── README.md ├── participation-guide.md └── proposal-guide.md /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Report a Bug 4 | url: https://github.com/pieces-app/support/issues 5 | about: Report a bug to the Pieces team! 6 | - name: Request a Feature or Project Idea 7 | url: https://github.com/pieces-app/opensource/discussions/new/choose 8 | about: Post your project idea in discussions for the Pieces team and community to discuss! 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Open Source by Pieces Contributor Guidelines 2 | 3 | We are beyond excited that you want to contribute regardless of your skill-level! We would love to accept your contributions. Open Source by Pieces is built for the community and warmly welcomes collaboration. There are many ways in which one could contribute to Pieces Open Source, and every contribution is equally appreciated here. Navigate through the following to understand more about contributing. 4 | 5 | And if you are new to the open source community or ecosystem, we will guide you through. If you are unfamiliar with the Pieces Product Suite - learn more about it here. 6 | 7 | We aim to make our AI solution inclusive and easy to use as possible and this is a huge effort so dear contributors, welcome onboard! 8 | 9 | ## General Contribution Flow 10 | 11 | ### Contributing Guidelines 12 | 13 | Firstly, thank you for considering contributing to Pieces Open Source. This guide details the general information that one should know before contributing to the repository. 14 | Please stick as closely as possible to the guidelines. That way, we ensure that you have a smooth experience contributing to this project. 15 | 16 | ### General Rules: 17 | 18 | These are, in general, rules that you should be following while contributing to an Open-Source Pieces project: 19 | 20 | - Be Nice, Be Respectful (BNBR) 21 | - Check if the Issue you created already exists or not 22 | - When creating a new issue, make sure you describe the issue clearly 23 | - Use tags to mark your issue as “draft” (we will remove the draft tag once we assign the proper issue tags to the created issue) 24 | - Make proper commit messages and document your PR well 25 | - Always add comments to your code 26 | - Follow proper code conventions because writing clean code is important 27 | - Add @jordan-pieces as a reviewer to be assigned to another maintainer or to be reviewed 28 | - Issues will be assigned on a "First Come, First Served" basis 29 | - Once an issue has been assigned, if we don’t receive any reply/response in a week, we will reassign the issue to someone else and remove the assignee 30 | - Do mention (@jordan-pieces) the project maintainer if your PR isn't reviewed within three days 31 | 32 | ## Getting Started 33 | ### Pre-requisites 34 | 35 | Ensure you have the latest version of Pieces OS installed on your system: 36 | - [Windows](https://docs.pieces.app/installation-getting-started/windows) 37 | - [macOS](https://docs.pieces.app/installation-getting-started/macos) 38 | - [Linux](https://docs.pieces.app/installation-getting-started/linux) 39 | 40 | 41 | ### View Open Task/Issues 42 | The issues section is the best place to raise issues or bugs you find within the projects. Click [here](https://github.com/pieces-app/opensource/issues) to view all open issues on all our open source projects. 43 | 44 | 45 | ## Tutorials that may help you: 46 | 47 | - [Git & GitHub Tutorial](https://www.youtube.com/watch?v=RGOj5yH7evk) 48 | - [Resolve merge conflict](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-on-github) 49 | 50 | 51 | ### Be Part of Our Community 52 | We are always ready to work with you and help you as you make your first contribution so join our [amazing community](discord.com/getpieces) and be part of our open source talks, meetups, etc. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Pieces.app 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open Source by Pieces (OSP) 2 | 3 | > A great place to get started is our [Discord Channel](https://discord.gg/getpieces) where all the community members communicate daily. 4 | 5 | Welcome to our Open Source Hub, where you can build your own Pieces Copilot, use your own Local Large Language Models(LLLMs), reference your own context in Copilot Chats, and save code using an incredibly flexible database all together with the community. 6 | 7 | Our goal is to bring the power of offline Contextual Copilots even closer to your workflow, and have provided [Pieces OS](https://docs.pieces.app/installation-getting-started/pieces-os) as a resource for you to use in any application you are developing on or a platform via our SDKs. 8 | 9 | 10 | 11 | > [Contribute to a Repo](/#Projects), open an issue or visit our [general documentation](https://docs.pieces.app) and learn about Pieces to help add to the conversation on how we can apply the power of Pieces OS (via our SDKs) in the products and locations we currently work. 12 | 13 | ## Guides 14 | Follow along with these blogs and tutorials to create your own copilot locally on device. 15 | 16 | | Links | 17 | |---| 18 | | [Copilot Overview](https://code.pieces.app/blog/build-your-own-open-source-copilot-with-pieces) (Great starting point) | 19 | | [How to Build Your Own Copilot](https://code.pieces.app/blog/build-your-own-copilot-in-less-than-10-minutes-with-pieces-os-client) | 20 | | [How to Download Local LLM's + Use them with the Copilot](https://code.pieces.app/blog/how-to-build-a-copilot-using-local-llms-with-pieces-client) | 21 | | [Adding Custom Context to Your Question](https://code.pieces.app/blog/build-your-own-copilot-with-local-context) | 22 | | [Build a Copilot with Microsofts Phi-2](https://code.pieces.app/blog/build-a-copilot-with-phi-2-using-pieces-client) | 23 | 24 | ## Documentation 25 | Use these documentation files to understand how Pieces Client works. 26 | 27 | | Language | Link | 28 | |---|---| 29 | | 🗄 Typescript | [To Documentation](https://docs.pieces.app/build/reference/typescript) | 30 | | 🗄 Python | [To Documentation](https://docs.pieces.app/build/reference/python) | 31 | | 🗄 Dart | [To Documentation](https://docs.pieces.app/build/reference/dart) | 32 | | 🗄 Kotlin | [To Documentation](https://docs.pieces.app/build/reference/kotlin) | 33 | 34 | ## SDKs 35 | Build on top of Pieces OS with this SDK and create your own Contextual Copilot. We recommend downloading the package via NPM/Maven/PyPI where you can find directions on how to use the APIs inside of this package. 36 | 37 | This package is easy to add to your project and gives you immediate access to all features in Pieces OS. You can always demo all of the available functionality that is present for you to use by downloading [Pieces for Developers Desktop App and Pieces OS](https://docs.pieces.app/installation-getting-started/what-am-i-installing). 38 | 39 | 40 | | SDK | Package | 41 | |---|---| 42 | | 📦 [Pieces OS Client SDK for Typescript](https://github.com/pieces-app/pieces-os-client-sdk-for-typescript) | [Deployed on NPM](https://www.npmjs.com/package/@pieces.app/pieces-os-client) | 43 | | 📦 [Pieces OS Client SDK for Python](https://github.com/pieces-app/pieces-os-client-sdk-for-python) | [Python Package Deployed on pypi](https://pypi.org/project/pieces-os-client/) | 44 | | 📦 [WIP] [Pieces OS Client SDK for Dart](https://github.com/pieces-app/pieces-os-client-sdk-for-dart) | (not deployed) | 45 | | 📦 [Pieces OS Client SDK for Kotlin](https://github.com/pieces-app/pieces-os-client-sdk-for-kotlin) | [Deployed on Maven Central](https://central.sonatype.com/artifact/app.pieces.pieces-os-client/pieces-os-client) | 46 | 47 | ## Playgrounds 48 | 49 | These are environments for building and understanding the SDKs wholisticaly, using all of the available features in the client and see real world examples similar to how we have build our products. 50 | 51 | | Project | Description | 52 | |---|---| 53 | | 🛝 [Typescript Example Playground](https://github.com/pieces-app/example-typescript) | Using the client with NPM to develop on in a web environment. Great HTML, CSS, and JS examples of different functionality. | 54 | 55 | ## Simple Starter Projects 56 | 57 | These examples are very focused, and show a specific feature/set of endpoints off. These are great for starting a project around, and can be useful for finding less cluttered examples that have fewer pending changes. 58 | 59 | | Project | Description | Links | 60 | |---|---|---| 61 | | 🍦 [Simple Copilot Starter](https://github.com/pieces-app/pieces-copilot-vanilla-typescript-example) | See how you can use the Copilot by itself using a few endpoints and a WebSocket. Follow this here to see how you can stream in the conversation with your copilot. There are a few blogs written/being written to assist and guide you as you explore the Pieces Copilot. | [(Blog + Tutorial) Build Your Own Copilot in 10 Minutes](https://code.pieces.app/blog/build-your-own-open-source-copilot-with-pieces) | 62 | 63 | ## Projects 64 | 65 | Here are some community projects that are currently underway and are always available for contribution or questions: 66 | 67 | | Project | Description | 68 | |---|---| 69 | | 🗂️ [Python CLI Agent](https://github.com/pieces-app/cli-agent) | A comprehensive command-line interface (CLI) tool designed to interact seamlessly with Pieces OS. It provides a range of functionalities such as asset management, application interaction, and integration with various Pieces OS features. | 70 | | 🗂️ [Pieces for Sublime](https://github.com/pieces-app/plugin_sublime) | The official Pieces for Sublime plugin | 71 | | 🗂️ [Pieces for Neovim](https://github.com/pieces-app/plugin_neovim) | The official Pieces for Neovim plugin | 72 | | 🗂️ [Streamlit x Pieces](https://github.com/pieces-app/pieces-copilot-streamlit-example) | The Pieces Copilot Streamlit Bot is an interactive chatbot application built using Streamlit, designed to provide users with a seamless interface to ask questions and receive answers in real-time and powered by Pieces Client | 73 | | 🗂️ [Readme Generator](https://github.com/Sophyia7/readme-generator/) | An open-source community project built using Streamlit and Pieces Python SDK, designed to simplify the process of creating a professional and informative README.md file for your projects. | 74 | | 🗂️ [Svelte x Pieces](https://github.com/seantiz/piecesvelte) | The Svelte x Pieces project is a quick way to setup a copilot chat and make it highly readable on the front-end, using Sveltekit's built-in methods to present your Pieces chat history within a lightweight, easy-to-build interface. | 75 | -------------------------------------------------------------------------------- /gsoc/README.md: -------------------------------------------------------------------------------- 1 | # Google Summer of Code 2024 | Open Source by Pieces 2 | Welcome to the Pieces GSoC 2024 guide and projects page, where you can find information on the projects planned for this year and other information. 3 | 4 | [Join our Discord](https://discord.gg/getpieces) for updates and to meet the community. 5 | 6 | We are planning to open up proposal submissions at the beginning of March - so stay tuned. 7 | 8 | ## What is Google Summer of Code? 9 | Google Summer of Code is a 10+ year old program that brings students closer to development through open source and support the community as a whole through summer projects. 10 | 11 | Open source organizations and projects can become mentor organizations to provide summer projects that are planned out between the mentors and the contributors before and during the project. Learn more about the program [here](https://summerofcode.withgoogle.com/how-it-works). 12 | 13 | ## What is the timeline for GSoC 2024? 14 | [Full timeline](https://developers.google.com/open-source/gsoc/timeline) 15 | 16 | |Important events | Deadline| 17 | | ----- | ----- | 18 | | Organization Applications Open | January 22, 2024| 19 | | Organization Application Deadline | February 6, 2024 | 20 | | Organizations Announced | February 21, 2024 | 21 | | Potential GSoC contributors discuss application ideas with mentoring organizations | February 22 - March 18, 2024 | 22 | | GSoC contributor application period | March 18 - April 2, 2024 | 23 | | Accepted GSoC Contributor projects announced | May 1, 2024 | 24 | | Contributors work on their Google Summer of Code projects | May 27, 2024 - August 26, 2024| 25 | | Mentors submit final GSoC contributor evaluations (standard coding period) | August 26, 2024 - September 2, 2024| 26 | | Initial results of Google Summer of Code 2024 announced | September 3, 2024 | 27 | | Students work on their Google Summer of Code project | May 1, 2024 - November 4, 2024| 28 | 29 | ## Organization Details 30 | 31 | - **Primary Open Source License:** MIT 32 | - **Organization Categories:** 33 | - AI 34 | - Dev Tool 35 | - Infra & Cloud 36 | 37 | ## Mentors 38 | 39 | - [Shivay Lamba](https://github.com/shivay-at-pieces) 40 | - [Jordan Freeman](https://github.com/jordan-pieces) 41 | - [Rutvik Tak](https://github.com/rutvik110) 42 | - [Sophia Irogebu](https://github.com/Sophyia7) 43 | - [Sam Jones](https://github.com/sam-at-pieces) 44 | 45 | ## Org Technologies 46 | 47 | - Dart 48 | - Python 49 | - Kotlin 50 | - Typescript 51 | - Javascript 52 | 53 | ## Org Topics 54 | 55 | - Large local language models 56 | - Copilots 57 | - Machine learning models 58 | - Local on device 59 | - Developers 60 | - Code tools 61 | 62 | ## Org Description 63 | 64 | **Pieces Copilot and Snippet manager** are built to unify your entire toolchain with an on-device copilot that helps you capture, enrich, and reuse useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your workflow. At Pieces.app, we have opened up the core functionality of Pieces OS to give all developers the opportunity to build their own copilots using our toolset. 65 | 66 | ## Mission Statement 67 | 68 | At Open Source by Pieces, we are dedicated to advancing the principles of open source innovation and collaboration. Our mission is to foster a vibrant community of experienced developers, emerging novices, and contributors united in building and shaping our platform through shared knowledge and collective effort. Through the Pieces OS Client SDKs, we strive to empower developers globally to create amazing tools and solutions they would love. 69 | 70 | Powered by community-driven development, where diverse perspectives come together to drive meaningful progress through fostering inclusivity, collaboration, and continuous learning, we encourage active participation among our members. Together, we aim to achieve a future where technology serves as a force for positive change and where users and developers alike can build whatever tool fits their needs. 71 | 72 | ## Our Goals 73 | 74 | - Provide powerful workflow tools for developers to assist in maintaining and managing the open-source community as a whole 75 | - Educate developers on using copilots responsibly and to their advantage, while also allowing for learning and growth in their skill set 76 | - Allow developers in locations with limited or poor connections work from home with access to a fast and functional copilot 77 | - Make documentation globally available for all developers regardless of language or race 78 | - Provide the tools needed to switch between different LLMs for any specific tasks 79 | -------------------------------------------------------------------------------- /gsoc/participation-guide.md: -------------------------------------------------------------------------------- 1 | # Pieces Google Summer of Code'24 Participant Guide 2 | 3 | ## **Communication** 4 | 5 | Welcome to the Pieces Open Source GSoC projects page. 6 | 7 | Your enthusiasm and unique perspectives are valuable additions to our open-source community. We believe in fostering an inclusive environment where everyone can learn, grow, and collaborate. 8 | 9 | Our [Discord server](discord.com/getpieces) is the best place to connect with other open source contributors or our maintainers. To make the most out of our discord server, ask your questions under the Open Source Chat channel, having the messages in the right place makes it easy for our team to respond quite fast. 10 | 11 | 12 | ## **General suggestions for contributors** 13 | - **Code and prototypes are preferred over detailed documentation**: 14 | Rather than investing extensive time in detailed application documents or unreliable estimates, we encourage applicants to channel their efforts into creating functional prototypes. The emphasis lies on tangible code and prototypes, 15 | 16 | - **Project goal setting**: 17 | While project ideas articulate overarching goals, they acknowledge the need for further refinement during the project lifecycle. Students are encouraged to conduct independent research, present innovative solutions, and be adept at navigating uncertainty and overcoming challenges that may arise throughout the project 18 | 19 | ## **Projects List** 20 | 21 | ### [Python-Cli Project](https://github.com/pieces-app/cli-agent) 22 | 23 | The Python CLI makes it easy to use the Pieces Client to save assets, query the Pieces Copilot and manage models all from the command line/terminal. It provides a range of functionalities such as asset management, application interaction, and integration with various Pieces OS features. This project contains a number of useful python examples for other projects! 24 | 25 | 26 | - **Skills Required:** 27 | - Python 28 | - CLI 29 | - PyPi Packaging 30 | - Pieces Client SDK’s 31 | - **Time Estimate:** 175 hours 32 | - **Difficulty:** Medium 33 | - **Mentors:** Jordan, Sam Jones 34 | 35 | #### Expected Task List 36 | 37 | - Add further functionality to the CLI-Agent project 38 | - Add Copilot Functionality 39 | - Copilot fix 40 | - Copilot Ask 41 | - Add Pieces core functionality 42 | - Search between different saved snippets 43 | - Saving assets/code snippets 44 | - Assets list and database management 45 | 46 | 47 | ### [Drag & Drop IntelliJ Project](https://github.com/pieces-app/IntelliJ-Drag-and-Drop-List) 48 | 49 | A feature plugin for other JetBrains/Intellij developers to use and add into their project, that shows why we needed this functionality for the Pieces Intellij Plugin, and how it can be added into their projects. This Drag and drop plugin allowing for additional functionality around dragging and dropping different asset types for custom IntelliJ plugins. There is documentation improvements needed, CI/CD pipelines and plenty more outside of the inital ideas listed below. 50 | 51 | 52 | - **Skills Required:** 53 | - Kotlin 54 | - IntelliJ SDK 55 | - Pieces Client SDK 56 | - **Time Estimate:** 90 hours 57 | - **Difficulty:** Intermediate 58 | - **Mentors:** Jordan, Rutvik, Shivay 59 | 60 | #### Expected Task List 61 | 62 | - Expand data flavors to allow for more file type interaction 63 | - Drag and drop images 64 | - Enhance Readme to include more related examples using Pieces APIs in ways that could expand the drag and drop project 65 | 66 | ### [Chrome Extension](https://github.com/pieces-app/v2-web-extensions) (Web Extension) --> Open Sourced 67 | 68 | The Pieces Web Extension is browser based tool with the Pieces Copilot features and snippet saving functionality from Chrome, Brave, Opera, and Edge. There are always new opportunities for browser support to be added, as this builds for those listed builds from a single repo. This project is planned to be open source shortly in prep for work here. 👍 69 | 70 | - **Skills Required:** 71 | - Dart 72 | - Pieces Client SDK 73 | - Chrome Web Extensions 74 | - **Time Estimate:** 300 hours 75 | - **Difficulty:** Hard 76 | - **Mentors:** Jordan, Rutvik 77 | 78 | #### Expected Task List 79 | 80 | - Moving a closed source project to open source 81 | - Extract hyperlinks in the selection and add to the snippet metadata 82 | - Add Brave browser side panel support 83 | - Add browser notification callbacks confirming if an asset is saved successfully or other snippet-related information 84 | - Update documentation throughout the codebase + create more robust documentation 85 | 86 | ### Pieces-github-bot 87 | 88 | An AI github bot that assists with maintaining, triaging, and contributions to an open source project completely on device and free inside of Github Actions pipelines. In order to create an easier to manage workflow system for community maintainers, this project would help provide insights and maintainability for extremely small repositories to very large repositories. 89 | 90 | - **Skills Required:** 91 | - Github Actions 92 | - YAML 93 | - Pieces Client SDK 94 | - Bash 95 | - **Time Estimate:** 300 hours 96 | - **Difficulty:** Hard 97 | - **Mentors:** Jordan, Shivay, Sophyia 98 | 99 | #### Expected Task List 100 | 101 | - Test spinning up a Pieces OS version in CI/CD 102 | - Understand the context of the repository it is in 103 | - Provide insights and maintainability for repositories 104 | - Install Pieces OS 105 | - AI bot to respond to issues, triage bugs, and build better documentation 106 | 107 | 108 | -------------------------------------------------------------------------------- /gsoc/proposal-guide.md: -------------------------------------------------------------------------------- 1 | # Proposal template 2 | ## 1. Contact details 3 | * Full name: 4 | * Country: 5 | * Time zone: 6 | * Email: 7 | * Github ID: 8 | * Personal blog (optional): 9 | * Twitter/LinkedIn/others: 10 | 11 | ## 2. GSOC information 12 | 13 | - Have you participated in the Google Summer of Code previously? Please describe your experience. 14 | 15 | Are you applying to any other organizations this year? If so, please list them. 16 | - How many hours will you devote to your GSoC project each week? Do you have any other commitments during the summer? 17 | - Have you ever contributed code to Pieces ? If you have, post the Pull Request (PR) links (It’s ok if they have not been merged/approved yet) 18 | - Do you plan on contributing to Pieces after GSoC is finished? 19 | - Were you able to install Pieces OS SDKs locally on your laptop? 20 | - If no, please explain why (Unsupported architecture, missing documentation, time constraints etc)? 21 | - If yes, how was the installation experience (missing documentation, complexity etc)? 22 | - Have you used Dart, Python or Kotlin in the past? Please provide a brief description and if possible links to the work. 23 | 24 | ## 3. Project idea 25 | Repeat this section for as many project ideas as you want (Go in the order most likely to least likely). 26 | 27 | - Title of the project/idea that you are interested in 28 | - Brief description of the idea. 29 | - Have you worked on a similar project in the past? If yes, please provide a brief description (with links if possible) 30 | - How will the project benefit the Pieces Community: 31 | - Will it help in driving adoption of Pieces in building AI dev applications? If yes, then how/why? 32 | - Deliverables 33 | - Include any milestones and deadlines 34 | - Include time for investigation, coding and documentation 35 | --------------------------------------------------------------------------------