TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

TabFS – a browser extension that mounts the browser tabs as a filesystem

1033 点作者 pps超过 2 年前

43 条评论

phillco超过 2 年前
If you&#x27;re on macOS, you can do a small piece of this natively with AppleScript (or anything that can send apple events) in Chrome or Safari -- namely, you can iterate through windows or tabs, view their source code, and execute arbitrary javascript you pass (there&#x27;s a one time security option you have to accept). This can be handy for quick automations if you don&#x27;t want to install anything.<p>(Background: I have RSI, so I&#x27;ve been developing some integrations between applications and Talon Voice (<a href="https:&#x2F;&#x2F;talonvoice.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;talonvoice.com&#x2F;</a>). AppleScript ends up being surprisingly valuable&#x2F;fast&#x2F;reliable for applications that support it. I also built an integration with iTerm2&#x27;s Python API before noticing that everything I was trying to do was already supported by its AppleScript dictionary, and was faster. In Google Chrome, the &quot;iterate through tabs and execute javascript in them&quot; is very useful for automating Google Meet muting&#x2F;unmuting.)<p>Nothing against this excellent project though; I&#x27;m a big fan of Omar&#x27;s Twitter! And I suspect most here will appreciate the easier scriptability of the filesystem approach than dealing with the atrocious syntax of AppleScript.
评论 #34848645 未加载
评论 #34850554 未加载
评论 #34850429 未加载
评论 #34850408 未加载
评论 #34873812 未加载
评论 #34848555 未加载
评论 #34871610 未加载
评论 #34850334 未加载
评论 #34848310 未加载
评论 #34852360 未加载
rsync超过 2 年前
I wish I could just visit about:tabs and see a plain text listing, one URL per line, of all the tabs I have open.<p>No esoteric attack vectors, no major new features or integrations, just a quick and easy way for any user <i>regardless of technical ability</i> to dump their tabs before they update firefox or reboot their system ...<p>... since <i>everyone</i> has been burned by a FF restart that, for unknown reasons, fails to restore tabs <i>even when configured properly to do so</i>.<p>As it stands, you need to dig several directories deep into &#x2F;Library (or whatever, depending on your OS) and then use JSON tools to export ... I&#x27;ve already lost most people.<p>FWIW, rsync.net has an outstanding $1500 bounty for this feature[1]. Consider this an inflation adjusted bump to $2500.<p>[1] <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24524923" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24524923</a>
评论 #34852116 未加载
评论 #34851302 未加载
评论 #34851198 未加载
评论 #34852543 未加载
评论 #34851113 未加载
评论 #34852395 未加载
评论 #34889478 未加载
评论 #34854481 未加载
评论 #34855520 未加载
评论 #34859265 未加载
EFruit超过 2 年前
I use a deeply modified fork of this every day. My changes have been:<p>1. Rewrite the backend in Go (I&#x27;m nkt qualified to audit the C version, and having Web Stuff™ interact directly with an unaudited C filesystem daemon makes my skin crawl)<p>2. Modularize it quite a bit to make it easier to add endpoints like...<p>3. Rudimentary Tree-Style Tabs support<p>4. Desperately try to improve the performance enough to navigate a sizable session (I have not yet succeeded)<p>Even after all this, I&#x27;ve come to the conclusion that the relationship is backwards: the filesystem representation needs to drive the browser, not the other way around.<p>It&#x27;s my considered opinion that some hero needs to step up and build a browser that exists to render one tab and nothing else, shelling out for everything more complex than scrolling. Then the power users cwn supply their own tab&#x2F;bookmark&#x2F;window&#x2F;filesystem schemes using whatever glue they prefer, be it python, node, shell scripts, Windows Explorer...
评论 #34858657 未加载
评论 #34855802 未加载
评论 #34856157 未加载
评论 #34867246 未加载
评论 #34855750 未加载
评论 #34855623 未加载
评论 #34855292 未加载
评论 #34855165 未加载
superkuh超过 2 年前
Too bad firefox doesn&#x27;t allow it&#x27;s users to install extensions without their approval and this extension can only be installed temporarily.<p>&gt;in Firefox You&#x27;ll need to install as a &quot;temporary extension&quot;, so it&#x27;ll only last in your current FF session. (If you want to install permanently, see this issue: <a href="https:&#x2F;&#x2F;github.com&#x2F;osnr&#x2F;TabFS&#x2F;issues&#x2F;4#issuecomment-753447380">https:&#x2F;&#x2F;github.com&#x2F;osnr&#x2F;TabFS&#x2F;issues&#x2F;4#issuecomment-75344738...</a>)
评论 #34848118 未加载
评论 #34850515 未加载
IncRnd超过 2 年前
This is a great idea. I really do like this.<p>However, we shouldn&#x27;t forget the reduced security of the situation. This opens entirely new attack vectors by introducing the otherwise fantastic ability of local programs to consume network input.<p>With the flexibility and utility of local information comes additional remote attacks. In doing so, this extension blurs the lines between the greater difficulty of remote attacks vs local attacks. Many programs never considered in their threat models that input would come over the network. There are many developers who never try to protect past a certain point, saying, &quot;if the person gets this far, there is nothing we can do anyway&quot;, then they ship.
评论 #34849537 未加载
评论 #34853124 未加载
评论 #34853904 未加载
danShumway超过 2 年前
If anyone already uses Sideberry (and I assume TST will work as well) on Firefox and doesn&#x27;t want to download an additional extension or doesn&#x27;t want something quite this powerful, I wrote <a href="https:&#x2F;&#x2F;textmark.netlify.app&#x2F;" rel="nofollow">https:&#x2F;&#x2F;textmark.netlify.app&#x2F;</a> a week or two ago, and I&#x27;ve been using it as a bookmark replacement.<p>Sideberry allows selecting arbitrary groups of tabs and copying them to the clipboard as an indented list of tabs. The site I put up will reopen those tabs, preserving the order and parent-child relationships between pages. It also uses `rel=noopener` to avoid a security risk I&#x27;ve noticed with similar sites in the past with parent-child page references. And it has no advertising and absolutely zero user tracking (aside from Netflify serverside logs that I can&#x27;t turn off), since it&#x27;s a project I made for myself and costs me nothing to run.<p>Also, the entire source (minus the favicon) is in one page, so if you want to self-host it yourself for extra protection, just view-source and copy and paste. It&#x27;ll work on any static web host.<p>I&#x27;ve found this to be a hugely beneficial replacement for bookmarking. Bookmarks are too slow and cumbersome for me, so I end up not really using them. It&#x27;s also annoying to enter descriptions for bookmarks, and I don&#x27;t like that all of my bookmarks need to be in the browser at the same time. This allows me to copy tabs out to separate files (I use org-mode to sort everything). And then I just keep this site pinned and use it to reopen tabs later if I context-switch. It&#x27;s the closest I&#x27;ve ever come to being able to actually manage my browser sessions and stop my tabs from growing out of control into the thousands.<p>I was going to wait to Open Source it and write up a better explanation of the workflow I use before sharing it, but it&#x27;s appropriate to share it here. It&#x27;s not nearly as powerful as what TabFS is talking about (and I&#x27;m very interested to look into TabFS more, since I&#x27;ve been thinking about roughly the same problem, and this looks like a potentially quite powerful setup), but it&#x27;s a small system that has made a big impact for me over the past week or so, and since I was already using Sideberry it doesn&#x27;t require me to install anything new or open any additional attack vectors.
评论 #34856483 未加载
layer8超过 2 年前
I’m already thinking about how to name web pages to trigger shell command injection attacks. ;)
评论 #34856754 未加载
guax超过 2 年前
This is a super nice idea. I wonder what other software we could interact in this form. The Unix people did have a good point about everything being a file.
评论 #34849332 未加载
评论 #34850279 未加载
评论 #34848233 未加载
评论 #34848579 未加载
评论 #34852105 未加载
评论 #34848145 未加载
eichin超过 2 年前
Hmm, this might be the right audience - anyone with C <i>and</i> JS skills want to poke at <a href="https:&#x2F;&#x2F;github.com&#x2F;osnr&#x2F;TabFS&#x2F;issues&#x2F;75">https:&#x2F;&#x2F;github.com&#x2F;osnr&#x2F;TabFS&#x2F;issues&#x2F;75</a> and maybe come up with a pull request? (I got as far as I could on the C side, all the details are in the issue, but I&#x27;m not sure what shape the javascript side of the fix would be...)
aeonik超过 2 年前
Two things,<p>1. I couldn&#x27;t get this working on my M1 Mac due to MacFUSE issues.<p>2. I wish there was a version for Firefox.<p>I think this is such a cool project, and I want this to work really badly. I have many workflows where I&#x27;d like to log data for certain sites I visit it plain text for further analysis. And long term storage.
评论 #34848273 未加载
评论 #34847982 未加载
djha-skin超过 2 年前
I was just thinking there is nothing new under the sun, but then I find imaginative programs like this.
rektide超过 2 年前
If anyone knows a twitter account even 1&#x2F;8th as fun as Omar&#x27;s[1] (the author of TabFS), I&#x27;d love to hear it.<p>Endless fun meditations &amp; musings on code &amp; processes &amp; computing. It&#x27;s the most live, most inove stream of computing out there.
评论 #34848496 未加载
vitiral超过 2 年前
One of the coolest use-cases for this for me is the ability to &quot;host&quot; these folders on a server and be able to access it from embedded contexts. I&#x27;m hoping to write a full computer stack that can run on microcontrollers (GitHub.com&#x2F;Civboot&#x2F;fngi), including a gopher-like browser for lightweight protocols. It could never interface with the real WWW... unless it had a server hosting the browser like this!
zemetras2超过 2 年前
Working on a nodejs&#x2F;electron app called &quot;canvas&quot; (code hosted on a personal gitlab instance for now), core functionality being organizing all your data into &quot;contexts&quot;. A context is identified by a context url, fe customerA&#x2F;projectP&#x2F;reports, each url part representing a layer on top of your data, using roaring bitmaps and lmdb underneath. Switching your context to customerB&#x2F;projectR automatically changes your tabs(socketio based poc ff extension), it also exports all your data(internally data&#x2F;abstr&#x2F;notes, data&#x2F;abstr&#x2F;tabs, data&#x2F;abstr&#x2F;files etc) as part of a webdav exported &quot;virtual&quot; fs tree. While the concept is not new, paired with the cli iface the ux is a huge boost to productivity, esp with chokidar based monitoring of the os downloads and desktop folders and minio&#x2F;s3; my desktop is finally used as a virtual work desk and not as a showcase for the 2nd law of thermodynamics. Stay tuned
napsterbr超过 2 年前
This is absolute genius and opens up so so many opportunities!
sampa超过 2 年前
for Firefox I use this<p>lz4jsoncat ~&#x2F;.mozilla&#x2F;firefox&#x2F;YOUR_PROFILE.default&#x2F;sessionstore-backups&#x2F;recovery.jsonlz4 | jq &#x27;.windows[].tabs[] | .index as $a | .entries[$a-1] | .title,.url&#x27;
zemetras超过 2 年前
Working on a nodejs&#x2F;electron app called &quot;canvas&quot; (code hosted on a personal gitlab inst for now), core functionality being organizing all your data into &quot;contexts&quot;. A context is identified with a context url - fe customerA&#x2F;projectP&#x2F;reports, each url part representing a layer on top of your data, using roaring bitmaps and lmdb underneath. Switching your context to customerB&#x2F;projectR automatically changes your tabs(socketio based poc ff extension), it also exports all your data(data&#x2F;abstr&#x2F;notes, data&#x2F;abstr&#x2F;tabs, data&#x2F;abstr&#x2F;files etx) as part of a webdav exported &quot;virt&quot; fs tree. While the concept is not new, paired with the cli iface the ux is a huge boost to productivity, witch chokidar based monitoring of downloads and desktop and minio&#x2F;s3, my drsktop is finally used as a virtual work desk and not as a showcase for the 2nd law of thermodynamics. Stay tuned
prettyStandard超过 2 年前
Wow, this is brilliant.<p>So often I want to automate parts of my web experience, and I think ugh I need a browser extension, or user script, or puppeteer. All of which feel clunky for trying to do something simple.<p>Seems like this will get me 90% of the way for most things, then when I need to click a button or automatically respond to an automatic email, that&#x27;s just a few lines of code and a cron job away.
haunter超过 2 年前
Something in a similar vein: BTFS, mount a torrent file (or magnet link) as a read only drive <a href="https:&#x2F;&#x2F;github.com&#x2F;johang&#x2F;btfs">https:&#x2F;&#x2F;github.com&#x2F;johang&#x2F;btfs</a><p>It&#x27;s really good, and use it a lot of times. Doesn&#x27;t seem to be an active project anymore though but it still works
evo_9超过 2 年前
Took me forever to find a good option on FireFox, Simple Tab Groups is pretty awesome: <a href="https:&#x2F;&#x2F;addons.mozilla.org&#x2F;en-US&#x2F;firefox&#x2F;addon&#x2F;simple-tab-groups&#x2F;" rel="nofollow">https:&#x2F;&#x2F;addons.mozilla.org&#x2F;en-US&#x2F;firefox&#x2F;addon&#x2F;simple-tab-gr...</a>
评论 #34851009 未加载
_V_超过 2 年前
This looks quite nice - for some time I have been trying to list all tabs in Chromium window so I can stick it to proper workspace (I&#x27;m using i3) - one for general browsing and one for IM&#x2F;socials.<p>If this can identify the window (PID or better WindowID like wmctrl -l lists) it will be perfect!
greatgib超过 2 年前
This is so awesome, I can&#x27;t believe that someone really created that.<p>I have dozens of windows, each with thousands tabs and this is something I would have dreamed of if I knew that it was possible.<p>Really kudo to this guy for that!
jacob019超过 2 年前
Can this be used like selenium for testing&#x2F;scraping&#x2F;automation? If you can open tabs, dump the DOM and inject JS, then I would think so.
jadbox超过 2 年前
Plan 9 is pleased.
beckhamc超过 2 年前
Nice work! Is it possible to somehow switch to a tab somehow using this? (Use case: switching browser tabs within Emacs). Thanks
评论 #34855914 未加载
behnamoh超过 2 年前
His link [0] makes me trust him more about what he&#x27;s doing as he&#x27;s clearly using Vim&#x2F;Neovim :)<p>0: <a href="https:&#x2F;&#x2F;twitter.com&#x2F;rsnous&#x2F;status&#x2F;1338932056743546880" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;rsnous&#x2F;status&#x2F;1338932056743546880</a>
评论 #34848327 未加载
yonz超过 2 年前
Genius! Gott love it when simple ideas create game changing improvement.<p>I have 168 tabs open and regardless of how hard i organize them, it&#x27;s still a mess. I will give this a try today.
smusamashah超过 2 年前
Previous discussion <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=25600338" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=25600338</a>
TenJack超过 2 年前
This reminds me of Bookmark OS but not in the browser <a href="https:&#x2F;&#x2F;bookmarkos.com" rel="nofollow">https:&#x2F;&#x2F;bookmarkos.com</a>
arjvik超过 2 年前
What would it entail to add support for this to another browser?<p>Is there an API contract defined and documented anywhere?<p>I&#x27;m specifically hoping to use this with Qutebrowser
评论 #34854532 未加载
barbazoo超过 2 年前
This is fantastic. I hope more people support them.
throwaway290超过 2 年前
It says some features are Chrome-only. How much of what us shown will not work in Safari? If anyone already tried. Otherwise I might...
linza超过 2 年前
That looks incredibly useful. Now i imagine i had a small terminal window within my browser that i could focus by pressing ESC ...
nchudleigh超过 2 年前
Now THAT is unix philosophy at its best.
sirjaz超过 2 年前
No support for Windows? There are more Windows endpoints than all iOS, MacOS, and Linux desktops combined.
评论 #34848361 未加载
评论 #34848156 未加载
评论 #34849822 未加载
评论 #34849606 未加载
评论 #34848195 未加载
lerax超过 2 年前
Oh cool! it seems I am a first class citizen here! Linux + Chrome + Emacs user! I will test it
评论 #34856815 未加载
hendzen超过 2 年前
This is really cool. Great work
dcreater超过 2 年前
Does this load all videos and images into the filesystem for Onlyfans?
prhrb超过 2 年前
This seems very interesting and all the uses cases it satisfies
mgaunard超过 2 年前
This is extremely useful. Thank you.
brimstedt超过 2 年前
Pretty cool, but my advice to anyone is still &quot;stop using tabs, you os already have a window manager&quot;
评论 #34852514 未加载
mdni007超过 2 年前
Genius
评论 #34850201 未加载
timetraveller26超过 2 年前
unix gang approves