MIT License
Open Canvas is an open source web application for collaborating with agents to better write documents. It is inspired by OpenAI's "Canvas", but with a few key differences.
You can use our deployed version for free by visiting open-canvas-lc.vercel.app
or
You can clone this repository and run locally/deploy to your own cloud. See the next section for steps on how to do this.
Running or developing Open Canvas is easy. Start by cloning this repository and navigating into the directory.
git clone https://github.com/langchain-ai/open-canvas.git
cd open-canvas
Next, install the dependencies via Yarn:
yarn install
Then install LangGraph Studio which is required to run the graphs locally, or create a LangSmith account to deploy to production on LangGraph Cloud.
After that, copy the .env.example
file contents into .env
and set the required values:
# LangSmith tracing (optional, but recommended.)
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=
# LLM API keys
# Anthropic used for reflection
ANTHROPIC_API_KEY=
# OpenAI used for content generation
OPENAI_API_KEY=
# Vercel KV stores. Used for system prompt storage.
KV_REST_API_URL=
KV_REST_API_TOKEN=
# LangGraph Deployment, or local development server via LangGraph Studio.
LANGGRAPH_API_URL=
Finally, start the development server:
yarn dev
Then, open localhost:3000 with your browser and start interacting!
We'd like to continue developing and improving Open Canvas, and need your help!
To start, there are a handful of GitHub issues with feature requests outlining improvements and additions to make the app's UX even better. There are three main labels:
frontend
: This label is added to issues which are UI focused, and do not require much if any work on the agent(s).ai
: This label is added to issues which are focused on improving the LLM agent(s).fullstack
: This label is added to issues which require touching both the frontend and agent code.If you have questions about contributing, please reach out to me via email: brace(at)langchain(dot)dev
. For general bugs/issues with the code, please open an issue on GitHub.