flowterm

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2026 License: MIT

README

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

Directories

Path Synopsis
cmd
flowterm command
flowterm is a productivity terminal dashboard for corporate developers: GitHub PRs, Jira tickets, and (soon) ServiceNow and Nexus, without leaving the terminal.
flowterm is a productivity terminal dashboard for corporate developers: GitHub PRs, Jira tickets, and (soon) ServiceNow and Nexus, without leaving the terminal.
internal
auth
Package auth stores provider tokens in the OS keychain (macOS Keychain, Windows Credential Manager, libsecret) with environment-variable fallback.
Package auth stores provider tokens in the OS keychain (macOS Keychain, Windows Credential Manager, libsecret) with environment-variable fallback.
config
Package config loads flowterm's YAML configuration from ~/.config/flowterm/config.yaml (overridable via FLOWTERM_CONFIG).
Package config loads flowterm's YAML configuration from ~/.config/flowterm/config.yaml (overridable via FLOWTERM_CONFIG).
provider
Package provider defines the core extension point of flowterm.
Package provider defines the core extension point of flowterm.
provider/confluence
Package confluence implements a read-only Confluence provider: pages recently updated by you and pages mentioning you.
Package confluence implements a read-only Confluence provider: pages recently updated by you and pages mentioning you.
provider/fake
Package fake is an in-memory provider used for UI development, demos (`flowterm --demo`), and tests.
Package fake is an in-memory provider used for UI development, demos (`flowterm --demo`), and tests.
provider/github
Package github implements the GitHub provider: review requests, your open PRs (with CI status), and mentions, plus approve/merge/comment actions.
Package github implements the GitHub provider: review requests, your open PRs (with CI status), and mentions, plus approve/merge/comment actions.
provider/jira
Package jira implements the Jira provider for both Cloud (email + API token, basic auth) and Server/Data Center (personal access token, bearer).
Package jira implements the Jira provider for both Cloud (email + API token, basic auth) and Server/Data Center (personal access token, bearer).
sync
Package sync fetches provider sections in the background and delivers results as Bubble Tea messages so the UI never blocks.
Package sync fetches provider sections in the background and delivers results as Bubble Tea messages so the UI never blocks.
ui
Package ui is the Bubble Tea application: sidebar platform tree, pinned panel grid, detail overlay, action palette, and status bar.
Package ui is the Bubble Tea application: sidebar platform tree, pinned panel grid, detail overlay, action palette, and status bar.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL