Welcome to the Early Access Program for Junie for GitHub.
Junie is a coding agent by JetBrains that redefines how you code.
We designed it to work in close collaboration with developers — handling routine and complex tasks both in your IDE and
right here, on GitHub.
Before installing Junie, make sure GitHub Actions are enabled in your repository:
- Go to your repository's Settings
- Navigate to Actions > General
- Select Allow all actions and reusable workflows
- Click Save
Simply install the Junie GitHub App — setup is automatic! 💫
Once installed, Junie will automatically:
- Create a Pull Request with the required workflow file (
.github/workflows/junie.yml
) - Add a
devcontainer.json
file to your repository to support containerized environments
Junie is currently in closed Early Access.
To join, please visit our Discord or ask to be added to the whitelist.
Junie runs in the environment set by your devcontainer.json
file. This file must define an environment where your project can be built and tested successfully.
We provide a default devcontainer setup, but you might need to adjust it to suit your project's needs. more information.
To learn more about devcontainers, visit: https://containers.dev/overview.
Junie can access secrets (like API keys) during execution through the JUNIE_SECRETS_JSON
feature. This allows you to securely provide credentials that your code might need.
- Go to your repository's Settings
- Navigate to Secrets and variables > Actions
- Click New repository secret
- Create a secret named
JUNIE_SECRETS_JSON
- Set the value as a JSON string containing your secrets:
{"OPENAI_KEY":"your-api-key-here","ANOTHER_KEY":"another-value"}
- The secrets from
JUNIE_SECRETS_JSON
become available as environment variables during Junie's execution - For example, if you provide
{"OPENAI_KEY":"sk-123"}
, Junie can access it as theOPENAI_KEY
environment variable - All secret values are automatically masked in GitHub Actions logs for security
Note: This feature is automatically available if you use the Junie GitHub App. For manual setups, make sure to include the secrets configuration in your workflow file.
If needed, you can configure Junie manually by adding the following file to .github/workflows/ej-issue.yml
:
Click to view the workflow file
name: Junie
run-name: Junie run ${{ inputs.run_id }}
permissions:
pull-requests: write
on:
workflow_dispatch:
inputs:
run_id:
description: "id of workflow process"
required: true
workflow_params:
description: "stringified params"
required: true
jobs:
call-workflow-passing-data:
uses: jetbrains-junie/junie-workflows/.github/workflows/ej-issue.yml@main
with:
workflow_params: ${{ inputs.workflow_params }}
runs-on: "ubuntu-latest" # Optional: Specify which runner to use
junie_ide: "IdeaUltimate" # Optional: Specify which IDE to use (IdeaUltimate or PhpStorm)
secrets:
JUNIE_SECRETS_JSON: ${{ secrets.JUNIE_SECRETS_JSON }} # Optional: Specify if your app requires some tokens for build or run tests. Put it into a JSON object when `key` is the name in the env and `value` is secret
- Create an Issue with the word
junie
in the title. - Or add a Comment with
@jetbrains-junie
to an existing issue.
Note: File attachments are not yet supported. Please provide your request in plain text.
Junie helps you iterate on pull requests with smart suggestions:
- Comments with
@jetbrains-junie
are picked up and processed. - If part of a code review, Junie waits until the review is submitted and picks up all comments with the mention
- If the PR was created by Junie or the author of comments with mentions, fixes are committed to the same branch, otherwise, Junie creates a new PR with the changes.
- Parallel runs on the same PR branch are prevented.
Note: Advanced configuration options (like custom keywords or target branches) are coming soon.
- Join our Discord to share your feedback and get help from the team.
- Try Junie in your IDE: JetBrains Plugin Marketplace.