Skip to content

dbustosp/flowterm

Repository files navigation

flowterm

A productivity terminal for your corporate 9-to-5. Your Jira tickets, GitHub PRs, and Confluence pages in one terminal workspace — so you stay in flow instead of tab-hopping through browser UIs.

 ⚡ flowterm                                                          ↻ synced 1m

 ⌂ Home            13 │ ⑂ Pull Requests · Payments (4) ⌗   ◆ Board · Payments (6) ⌗
                      │ ─────────────────────────────────  ─────────────────────────────────
 ▾ ▦ Payments      10 │ ○  acme/api#482   Add retry mi… 2h ◐  PAY-88  Add 3DS challenge… 1h
    ⑂ Pull Requests 4 │ ✖  acme/web#213   Fix flaky ch… 1d ○  PAY-91  Chargeback webhoo… 6h
    ◆ Board         6 │                                    ◼  PAY-74  Refund idempotenc… 2d
 ▾ ◎ Personal       9 │
    ⑂ Review Req…   2 │
    ◆ My Issues     3 │

 j/k move  ⏎ detail  a actions  c code  o open  p pin  h/l focus  q quit

Navigate the platform tree on the left, or pin any section (p) into a split view — up to 4 panels auto-tile, so Jira and GitHub sit side by side during standup. Your layout persists between runs. Enter opens a full detail overlay; b hides the sidebar on narrow terminals.

Ticket → code in one keypress: hit c on any Jira ticket or PR and a Claude Code (or opencode) session opens pre-loaded with the ticket's title, description, and link — in a new tab of your terminal (or a split pane, if you prefer) when your terminal supports it — tmux, iTerm2, WezTerm, Zellij — or by temporarily taking over the terminal otherwise.

code:
  command: claude            # or: opencode  (args: [run] if your agent needs a subcommand)
  workdir: ~/projects/acme   # repo to launch in
  mode: auto                 # auto (open in terminal when possible) | split | takeover
  layout: tab                # tab (default) | pane (split beside the dashboard)

Why

Context switching kills flow. Checking a ticket status, approving a PR, or moving a card to Done shouldn't require leaving your terminal, finding the right browser tab, and losing five minutes. flowterm gives you a lazygit-style dashboard over the unglamorous corporate systems, with light actions for the 80% of daily interactions — and o to open the browser for the rest.

Built for locked-down corporate machines: single static binary, no runtime to install, tokens stored in your OS keychain (never plaintext), works with GitHub Enterprise and Jira Server/Data Center behind the firewall.

Install

Grab a binary from the releases page (macOS/Linux/Windows, no runtime needed), or:

go install github.com/dbustosp/flowterm/cmd/flowterm@latest

Quick start

flowterm --demo     # try it with fake data, zero setup
flowterm init       # guided setup: connect systems, then import projects
flowterm

flowterm init is a two-step wizard: connect GitHub/Jira/Confluence (tokens go straight to the OS keychain; gh auth is reused automatically), then import projects — it lists your Jira boards and GitHub repos so you compose projects by picking numbers:

projects:
  - name: Payments
    jira_board: 42                  # imported from your Jira
    github_repos: [acme/api, acme/payments-worker]
    workdir: ~/projects/payments    # `c` opens coding sessions here

The sidebar is organized by project (each with its Jira board and the repos' pull requests), plus a Personal group for cross-cutting sections: review requests, your PRs, mentions, your issues. Tokens resolve: FLOWTERM_<PROVIDER>_TOKEN env → OS keychain → gh auth token.

Opening any item (Enter) lazily loads full detail — Jira comments and reporter, PR reviewers with verdicts, branch, diff size, latest comments — fresh from the API, without weighing down the background polling.

Config

~/.config/flowterm/config.yaml:

refresh_seconds: 120
icons: nerd        # real GitHub/Jira logos — needs a Nerd Font; omit for plain unicode
github:
  enabled: true
  # base_url: https://github.corp.com/api/v3   # GitHub Enterprise
jira:
  enabled: true
  base_url: https://yourco.atlassian.net
  email: you@corp.com        # Cloud only; omit for Server/DC PAT auth
  # jql: assignee = currentUser() AND ...      # override the default query

What it shows / does (v1)

Provider Sections Actions
GitHub Review requests, my PRs, mentions Approve, merge, comment, open
Jira My open issues, current sprint Transition (live workflow states), comment, assign to me, open
Confluence My recent pages, mentions Open in browser (read-only v1)

Every section degrades independently — a broken proxy to Jira never blanks your GitHub pane.

Roadmap

  • ServiceNow (assigned incidents, approvals) and Nexus/artifact alerts
  • Confluence write actions (comment, watch)
  • CI check status inline on PRs
  • Configurable keybindings and sections

Adding a system is implementing one small Go interface — see CONTRIBUTING.md.

License

MIT

About

A productivity terminal for your corporate 9-to-5 — Jira, GitHub, Confluence, and AI coding sessions without leaving the terminal

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages