Linear connector setup
Operator·2 minutes to read
This page is the setup half — creating the OAuth application Linear needs in its own API settings and getting its client id and secret into this deployment. Authorising a connection afterwards is the Authenticate control on the plugin sheet, which is what actually sends you to Linear.
1. Create the OAuth application in Linear's API settings
-
Open Linear's API settings and create a new OAuth application — this is your own application, not Botseon's.
-
Under Callback URLs, add the redirect URL from
docs/connectors/README.md— with the quickstart's defaultBOTSEON_PUBLIC_URL, that is:http://127.0.0.1:3000/api/oauth/linear/callback -
Create it. Linear shows you a Client ID and a Client secret — copy both now.
2. Scopes
Request the narrowest set that covers the tools this connector exposes (F-PLUG-1: minimum scopes per capability, read and write requested separately):
read— read issues, projects and comments; no writes.write— create and update issues, projects and comments.issues:create— create an issue without the broaderwritegrant.
3. Enter the app
One command, with the client secret on standard input — there is no flag that takes it and no
environment variable that holds it (see
docs/connectors/README.md):
printf %s "$CLIENT_SECRET" | botseon oauth-app set \
--org <organisation id> --slug linear \
--client-id <the client ID from step 1> \
--auth-url https://linear.app/oauth/authorize \
--token-url https://api.linear.app/oauth/token \
--configured-by <your user id>
Both URLs are read from Linear's own current documentation (OAuth 2.0 authentication), not invented here.
It stores the secret encrypted and prints the redirect URL from step 1 back, so you can check the
two match. botseon oauth-app show --org <organisation id> --slug linear says whether an app is
configured and under which client id; nothing prints the secret back.
Never put either value in a bot's description, a memory, or anywhere else a model reads as ordinary text.
Last verified against build 445930e.