Jira
Browse Jira lists and boards, then create linked agent tasks.
Jira is an optional integration, disabled by default. Open Settings, enable Jira, and save your self-hosted Jira instance URL and personal access token. Include the context path in the URL if your instance uses one, for example https://jira.example.com/jira. Use HTTPS; loopback HTTP is supported for local instances.
This integration uses Jira Server / Data Center's REST v2 API with Bearer authentication. Create a personal access token in your Jira profile with access to the projects you need. Only the URL and token are required. Jira Cloud's email and API token authentication is not supported by this integration.
Browse tickets
Tickets appears in the sidebar when Jira is enabled. The view defaults to tickets assigned to the connected account. Choose other scopes, a Jira board, or a favourite filter; narrow the results by project, status, search text or JQL. You can switch between List and Board layouts. The Board layout groups tickets into the selected board's columns when available, or by status in other views. Save a useful view and filters as a named preset. Search by an exact key, such as APP-123, or a phrase in the ticket text. Next page loads more list results. Lists and tickets you opened in the last 24 hours show immediately, even after a reload, and refresh in the background. They are cached in the browser's IndexedDB, and changing the connection settings or upgrading opendevhub clears that cache. Refresh reloads the current page and keeps it visible meanwhile.

Select a ticket to see its description, project, status, type, assignee, reporter, priority, labels, and update time. Jira wiki markup is converted for display. Open in Jira opens the original ticket.

Create a task
In a project's gear menu, Tickets and pull requests can link a Jira board and optionally narrow it with JQL. If there is no board, JQL can select tickets from across Jira. The project's sidebar then shows its open tickets from that selection.
Create task opens the existing New task dialog with the ticket title and description filled in. Choose your local project, worktree, environment, models, and agent as usual. You can edit the prompt before starting. The agent receives the ticket key, URL, title, and description, without receiving the integration token.
Every task variant stores the originating Jira instance, key, title, and original description in its opencode session metadata. This reference survives restarts with the session and is shown on the task page and on its checkout's review page. The original description remains available when Jira is disabled or unreachable. Ticket details opens the current ticket when the same Jira instance is connected. The ticket page also links to tasks associated with it among the dashboard's listed sessions.
Saved settings
The URL, enabled state, and opaque credential reference are saved in ~/.config/opendevhub/integrations/jira.json (or under XDG_CONFIG_HOME), with mode 0600 inside a 0700 directory. The token is stored separately in macOS Keychain, Windows Credential Manager, or persistent Secret Service on Linux, using its own Jira service. The token is never returned to the browser, saved in the settings file, or injected into task containers. An unavailable or locked credential store causes an actionable error; there is no plaintext fallback.
A saved token shows as Token saved; Replace lets you paste a new one. Changing the instance URL requires a new token. Disabling retains the credential; Remove token… deletes it and turns Jira off.
Jira access is read-only: creating a task does not change ticket status, assignments, or comments. Individual API responses are limited to 20 MiB, and task prompts and description snapshots are limited to 100,000 characters.