{"id":53472,"date":"2026-10-07T14:48:19","date_gmt":"2026-10-07T18:48:19","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=53472"},"modified":"2026-10-07T14:48:19","modified_gmt":"2026-10-07T18:48:19","slug":"opening-a-files-git-history-in-tower","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2026\/10\/07\/opening-a-files-git-history-in-tower\/","title":{"rendered":"Opening a File&rsquo;s Git History in Tower"},"content":{"rendered":"<p><a href=\"https:\/\/www.git-tower.com\/blog\/tower-mac-18\">Tower 18<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.git-tower.com\/blog\/tower-mac-18\">\n<p>But something <em>has<\/em> changed: thanks to AI coding agents like Claude Code and Codex, even the most devoted GUI fans are now spending more and more time in the terminal. You kick off a task, the agent does its thing&#8230; and then you want to actually <em>see<\/em> what happened.<\/p>\n<p>That&rsquo;s where Tower shines, so we felt the path from the terminal to Tower deserved a serious upgrade. With Tower 18, the Tower Command Line Tool (<code>gittower<\/code>) is no longer just a way to open a repository &mdash; it takes you to exactly the place you want to look at.<\/p>\n<\/blockquote>\n\n<p>I&rsquo;ve been wanting this for 15 years or so. Thanks, AI! You <em>still<\/em> can&rsquo;t open a file in Tower by dragging it onto the Dock icon. Nor can you just pass it to <code>gittower<\/code> and have it figure out which repo it belongs to. But if your working directory is already within the working copy, you can now use <code>gittower<\/code> to open the file history. I&rsquo;ve written <a href=\"https:\/\/c-command.com\/scripts\/tower\/open-in-tower\">a script<\/a> that finds the current file in the frontmost app (BBEdit, Xcode, or Finder) and opens it in Tower.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2026\/09\/17\/xcodes-new-xcproj-files-are-json\/\">Xcode&rsquo;s New .xcproj Files Are JSON<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2026\/04\/24\/git-tower-16\/\">Git Tower 16<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2014\/07\/22\/tower-2-0\/\">Tower 2.0<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Tower 18: But something has changed: thanks to AI coding agents like Claude Code and Codex, even the most devoted GUI fans are now spending more and more time in the terminal. You kick off a task, the agent does its thing&#8230; and then you want to actually see what happened. That&rsquo;s where Tower shines, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2026-10-07T18:48:22Z","apple_news_api_id":"7cd17996-7c7f-4dcc-955c-a39df5814936","apple_news_api_modified_at":"2026-10-07T18:48:23Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/AfNF5lnx_TcyVXKOd9YFJNg","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[159,1351,154,458,377,605,30,32,2784,226],"class_list":["post-53472","post","type-post","status-publish","format-standard","hentry","category-technology","tag-applescript","tag-artificial-intelligence","tag-bbedit","tag-finder","tag-git","tag-git-tower","tag-mac","tag-macapp","tag-macos-27","tag-xcode"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/53472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=53472"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/53472\/revisions"}],"predecessor-version":[{"id":53473,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/53472\/revisions\/53473"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=53472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=53472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=53472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}