One install instead of Finder plugin stacking
dotViewer covers markdown, config files, logs, dotfiles, plain text documents, and source code in one package instead of making you combine separate Quick Look tools.
dotViewer turns Finder into a better technical file viewer. Preview technical text files like .gitignore, .env, and README.md without opening a full editor for a quick check.
It replaces the usual patchwork of Quick Look add-ons with one native app. The screenshots below are from the real macOS product, not a web-only mockup. Use the free direct DMG if you want the quickest install, or the paid App Store option if you prefer store-managed installation and want to support development.
Type an extension like .cue, an exact filename like Dockerfile, or a language name like yaml. The result below uses the same shipped support list and macOS routing caveats the site exposes in full further down the page.
Static shipped coverage: 404 file types, 599 extensions, and 295 exact filename mappings.
Start with a real extension, filename, or language name and dotViewer will check the shipped list instantly.
Common examples: .gitignore • .env • README.md • package.json • data.tsv • nginx.conf • tool • man.1 • config.yaml • app.log



dotViewer covers markdown, config files, logs, dotfiles, plain text documents, and source code in one package instead of making you combine separate Quick Look tools.
Open .gitignore, .env, README files, shell scripts, extensionless executable scripts, JSON, YAML, XML, TSV, man pages, and source code directly in Finder Quick Look instead of bouncing into editors and Terminal windows.
System-following themes, initial preview size, width, copy behavior, markdown defaults, supported file mappings, and status live in the companion app that ships with the extension.
Many Finder workflows break because the right preview tool depends on the file in front of you. dotViewer is built to reduce that fragmentation. Install one app, then preview markdown, config files, dotfiles, logs, plain text, and source code from the same macOS Quick Look flow.
.gitignore, .env, .editorconfig, README.md, JSON, YAML, XML, INI, CSV, TSV, extensionless executable scripts, man pages, shell scripts, log files, and source code from the same Quick Look flow.The website uses the actual preview UI language from dotViewer: dark Quick Look surfaces, file badges, top-bar actions, RAW versus rendered markdown, and the wider markdown layout with TOC support when that mode is enabled.
.gitignore, .env, shell scripts, XML, JSON, YAML, and source code with syntax-aware rendering.dotViewer is made for the technical files Finder often handles badly by default: source code, shell scripts, dotfiles, XML, config files, log files, and plain text documents. The preview stays in Quick Look, so a small inspection stays small.


Xcode.

dotViewer supports the two markdown views people actually need: inspect the source and read the document. README files, changelogs, notes, and docs can stay inside Finder Quick Look instead of making you jump to a dedicated markdown app.
dotViewer includes configurable copy behavior for preview selection. That means the preview is useful for real work, not just passive viewing. The small “Copied selection” feedback below is part of the shipped product.

dotViewer is not only a Quick Look extension. The companion app lets people switch between system-following themes, choose a shared starting preview size across files, tune code and markdown widths, control copy behavior, manage file types, and inspect extension status. This is part of what makes the product more useful than a narrow single-purpose preview plugin.

Xcode, and Solarized pairs plus fixed dark themes such as Tokyo Night and Blackout.



dotViewer is strongest where Finder gives third-party Quick Look extensions room to improve the experience. When macOS owns the preview path, the limitation is stated directly instead of hidden behind vague marketing claims.
.html stays with the native HTML Quick Look renderer..ts can still be routed by macOS as MPEG-2 transport stream video in some situations, which is a platform routing limitation rather than a dotViewer bug.dotViewer does support custom mappings in the app, but only for file types the shipped extension already routes. Sorry, but dotViewer cannot teach macOS Quick Look completely brand-new file types at runtime.
Everything in the accordion below is already shipped today. Most of it routes directly to dotViewer in Finder Quick Look, but a small number of mappings still stay with macOS system previewers and are marked inline. If a type is missing from that list, users will not be able to add it themselves until a future shipped dotViewer version includes it.
Currently shipped coverage: 404 file types, 599 extensions, and 295 exact filename mappings.
If you need something outside that list, please open a GitHub issue so it can be added to a future release.
1 extension
.awk1 extension
.abap1 extension
.abp1 extension
.abc2 extensions
.was.wud1 extension
.as3 extensions
.ascx.ashx.aspx4 extensions
.a.adb.ads.gnad1 extension
.abnf1 extension
.agda1 extension
.alan1 extension
.alg2 extensions
.dat.run5 extensions
.hnd.s4.s4h.s4t.t42 extensions • 2 exact filenames
.htaccess.htpasswd.htaccess.htpasswd1 extension
.httpd1 extension
.strings1 extension
.stringsdict2 extensions
.applescript.scpt1 extension
.dats1 extension
.arc1 extension
.arm1 extension
.as400cl1 extension
.a4c2 extensions
.adoc.asciidoc1 extension
.astro0 extensions • 8 exact filenames
authorsauthors.mdauthors.txtcontributorscontributors.mdcontributors.txtmaintainersmaintainers.md1 extension
.ac1 extension
.ahk1 extension
.au31 extension
.avenue0 extensions • 28 exact filenames
.commitlintrc.cjs.config.mjs.eslintrc.cjs.lintstagedrc.cjs.prettierrc.cjs.stylelintrc.cjs.tsbuildinfobabel.config.cjsbabel.config.jseslint.config.jseslint.config.mjsjest.config.jsjest.config.tsnext-env.d.tsnext.config.jsnext.config.mjsnuxt.config.jsnuxt.config.tspostcss.config.jsprettier.config.jsrollup.config.jstailwind.config.jstailwind.config.tsvite.config.jsvite.config.tsvitest.config.jsvitest.config.tswebpack.config.js0 extensions • 2 exact filenames
.babel.jsonbabel.config.json0 extensions • 5 exact filenames
.babelrc.js.eslintrc.js.lintstagedrc.js.prettierrc.js.stylelintrc.js0 extensions • 4 exact filenames
.babelrc.json.eslintrc.json.prettierrc.json.stylelintrc.json5 extensions
.backup.bak.old.orig.save1 extension
.bnf1 extension
.bal1 extension • 4 exact filenames
.bzlbuildbuild.bazelworkspaceworkspace.bazel1 extension
.bbcode1 extension
.bcpl1 extension
.bib1 extension
.bfr1 extension
.y1 extension
.bb1 extension
.bms1 extension
.boo0 extensions • 1 exact filename
brewfile0 extensions • 1 exact filename
.browserslistrc2 extensions
.c.h1 extension
.cs10 extensions
.c++.cc.cpp.cu.cxx.hh.hpp.hxx.inl.ipp0 extensions • 1 exact filename
caddyfile0 extensions • 2 exact filenames
cargo.lockcargo.toml1 extension
.ceylon0 extensions • 1 exact filename
.cfusertextencoding0 extensions • 11 exact filenames
changelogchangelog.mdchangelog.txtchangeschanges.mdhistoryhistory.mdnewsnews.mdreleasesreleases.md1 extension
.chpl1 extension
.inp1 extension
.chl0 extensions • 1 exact filename
.circleci0 extensions • 2 exact filenames
.clang-format.clang-tidy1 extension
.icl1 extension
.cb1 extension
.clipper1 extension
.clp4 extensions
.clj.cljc.cljs.edn1 extension • 1 exact filename
.cmakecmakelists.txt2 extensions
.cbl.cob0 extensions • 1 exact filename
codeowners1 extension
.coffee2 extensions
.cfc.cfm1 extension
.command0 extensions • 3 exact filenames
.commitlintrc.json.lintstagedrc.json.releaserc.json0 extensions • 2 exact filenames
.commitlintrc.yml.releaserc.yml0 extensions • 2 exact filenames
composer.jsoncomposer.lock4 extensions
.default.sample.secret.template0 extensions • 2 exact filenames
configureconfigure.ac1 extension
.crk1 extension
.critic1 extension
.cr1 extension
.css1 extension
.csv1 extension
.cue0 extensions • 1 exact filename
.curlrc2 extensions • 2 exact filenames
.cursorignore.cursorrules.cursorignore.cursorrules1 extension
.d1 extension
.dart1 extension
.sources2 extensions
.dpr.pas0 extensions • 11 exact filenames
.cfignore.eslintignore.gcloudignore.gitignore_global.helmignore.nowignore.prettierignore.slugignore.stylelintignore.vercelignore.vscodeignore1 extension
.dtsi2 extensions
.diff.patch1 extension
.dig0 extensions • 2 exact filenames
.dir_colors.dircolors1 extension
.dockerfile0 extensions • 5 exact filenames
compose.yamlcompose.ymldocker-compose.override.ymldocker-compose.yamldocker-compose.yml0 extensions • 2 exact filenames
.containerignore.dockerignore0 extensions • 5 exact filenames
containerfiledockerfiledockerfile.devdockerfile.proddockerfile.test1 extension
.dylan2 extensions
.eml.mbox1 extension
.edl0 extensions • 1 exact filename
.editorconfig2 extensions
.e.se2 extensions
.ex.exs1 extension
.elv1 extension
.org0 extensions • 7 exact filenames
.env.env.development.env.example.env.local.env.production.env.staging.env.test1 extension
.erb2 extensions
.erl.hrl4 extensions
.eu.ew.exw.wxu2 extensions
.exa.exapunks1 extension
.exp1 extension
.ebnf0 extensions • 4 exact filenames
.env.ci.env.defaults.env.sample.env.template3 extensions
.fs.fsi.fsx1 extension
.inc1 extension
.flx1 extension
.fish0 extensions • 1 exact filename
.flowconfig1 extension
.ttx3 extensions
.f.for.ftn2 extensions
.f90.f951 extension
.frink1 extension
.fstab0 extensions • 1 exact filename
funding.yml1 extension
.class1 extension
.gdb1 extension
.gd0 extensions • 1 exact filename
.gemrc0 extensions • 12 exact filenames
appfilecapfiledeliverfilefastfilegemfileguardfilematchfilepodfilerakefilescanfilesnapfilethorfile6 extensions
.29k.68s.68x.a51.asm.x861 extension
.anacrontab1 extension
.feature0 extensions • 6 exact filenames
.gitattributes.gitconfig.gitkeep.gitmessage.gitmodules.mailmap0 extensions • 1 exact filename
.gitblame-ignore-revs0 extensions • 2 exact filenames
.gitexclude.gitignore0 extensions • 2 exact filenames
dependabot.yamldependabot.yml1 extension
.gleam8 extensions
.comp.frag.geom.glsl.tesc.tese.vert.vs0 extensions • 1 exact filename
.screenrc1 extension
.go0 extensions • 4 exact filenames
go.modgo.sumgo.workgo.work.sum2 extensions
.gql.graphql1 extension
.dot0 extensions • 2 exact filenames
gruntfile.coffeegruntfile.js0 extensions • 3 exact filenames
gulpfile.babel.jsgulpfile.jsgulpfile.ts1 extension
.haml1 extension
.ha1 extension
.hs1 extension
.lhs1 extension
.hx1 extension
.hcl1 extension
.hlsl5 extensions
.htm.html.jinja.twig.xhtml.htm.html.xhtmldotViewer ships HTML-family mappings, but macOS keeps the native HTML Quick Look renderer for these files.
1 extension
.tpl1 extension
.hug0 extensions • 1 exact filename
.hushlogin0 extensions • 3 exact filenames
.huskyrc.huskyrc.js.huskyrc.json1 extension
.icn1 extension
.idl1 extension
.4gl11 extensions
.cfg.conf.desktop.doxyfile.editorconfig.inf.ini.kdev3.prefs.properties.reg1 extension
.iss1 extension
.idlang1 extension
.ili1 extension
.io0 extensions • 2 exact filenames
.irbrc.pryrc1 extension
.ham1 extension
.j5 extensions
.gradle.groovy.grv.java.jenkinsfile1 extension
.fx3 extensions
.cjs.js.mjs1 extension
.jsm1 extension
.js_regex1 extension
.jsp0 extensions • 1 exact filename
jenkinsfile6 extensions • 1 exact filename
.eslintcache.json.jsonc.map.webmanifest.xcstrings.firebaserc2 extensions
.jsonl.ndjson1 extension
.json51 extension
.jsx1 extension
.jl0 extensions • 1 exact filename
justfile1 extension
.kml2 extensions
.kt.kts1 extension
.ldif1 extension
.less0 extensions • 9 exact filenames
copyingcopying.mdcopying.txtlicencelicence.mdlicence.txtlicenselicense.mdlicense.txt1 extension
.ly1 extension
.b1 extension
.lsl1 extension
.liquid16 extensions
.cl.clisp.el.fas.fasl.lsp.mud.rkt.sbcl.sch.scm.scom.sld.sls.sps.ss1 extension
.lgt1 extension
.lotos1 extension
.lottie1 extension
.ls1 extension
.lua1 extension
.lbn1 extension
.m41 extension
.mxml3 extensions
.gnumakefile.mak.mk0 extensions • 2 exact filenames
gnumakefilemakefile14 extensions
.1.2.3.4.5.6.7.8.9.man.mdoc.nroff.roff.troff1 extension
.mpl9 extensions
.markdown.md.mdown.mdtxt.mdx.mkd.mkdn.qmd.rmd0 extensions • 2 exact filenames
.markdownlint.json.markdownlintrc2 extensions
.mat.mlx1 extension
.pom1 extension
.ms1 extension
.mel1 extension
.mhl1 extension
.mercury1 extension • 2 exact filenames
.mesonmeson.buildmeson_options.txt3 extensions
.ps1.psd1.psm11 extension
.miranda1 extension
.nbs1 extension
.mobileconfig1 extension
.mo2 extensions
.def.mod2 extensions
.i3.m31 extension
.mojo1 extension
.moon1 extension
.mpd3 extensions
.mq4.mq5.mqh2 extensions
.bat.cmd1 extension
.mssql2 extensions
.nt.ttl1 extension
.nas1 extension
.n1 extension
.neon0 extensions • 1 exact filename
.netrc1 extension
.nrx1 extension
.nbc1 extension
.nf1 extension
.nginx1 extension
.nice1 extension
.nim1 extension
.nix0 extensions • 1 exact filename
.nojekyll0 extensions • 4 exact filenames
.npmrc.pnpmfile.cjs.yarnrc.yarnrc.yml1 extension
.nxc2 extensions
.nsh.nsi1 extension
.nu0 extensions • 1 exact filename
.nycrc1 extension
.ooc1 extension
.os2 extensions
.m.mm2 extensions
.ml.mli1 extension
.canvas1 extension
.mll1 extension
.mly1 extension
.octave1 extension
.odin1 extension
.oorexx1 extension
.scad1 extension
.otio1 extension
.fea2 extensions
.bnd.bndrun1 extension
.oz0 extensions • 4 exact filenames
bower.jsonlerna.jsonpackage-lock.jsonpackage.json1 extension
.sc0 extensions
1 extension
.psl1 extension
.pddl6 extensions
.cgi.perl.pl.plex.plx.pm8 extensions
.php.php3.php4.php5.php6.php7.phps.phpt1 extension
.pmod0 extensions • 1 exact filename
pipfile15 extensions
.bdy.ff.fp.fpp.rpp.sf.sp.spb.spe.spp.wf.wp.wpb.wpp.wps1 extension
.plperl1 extension
.plpython8 extensions
.fnc.pck.pkb.pks.prc.tpb.tps.trg1 extension
.sql1 extension
.pltcl3 extensions
.log.text.txt1 extension
.pv1 extension
.po0 extensions • 1 exact filename
podfile.lock1 extension
.grm1 extension
.pony1 extension
.pcss1 extension
.ps1 extension
.pov1 extension
.s0 extensions • 2 exact filenames
.pre-commit-config.yaml.pre-commit-hooks.yaml1 extension
.prisma0 extensions • 2 exact filenames
procfileprocfile.dev3 extensions
.i.p.w0 extensions • 7 exact filenames
.babelrc.commitlintrc.eslintrc.lintstagedrc.npmignore.prettierrc.stylelintrc1 extension
.pro1 extension
.pure3 extensions
.pb.pbf.pbi1 extension
.purs0 extensions
14 extensions • 1 exact filename
.cpy.gyp.gypi.pxd.pxi.py.py3.pyi.pyw.pyx.rpy.sconstruct.snakefile.wscriptsconstruct0 extensions • 7 exact filenames
.bandit.coveragerc.flake8.isort.cfg.mypy.ini.pep8.pylintrc0 extensions • 1 exact filename
pyproject.toml0 extensions • 4 exact filenames
constraints.txtrequirements-dev.txtrequirements-test.txtrequirements.txt0 extensions • 4 exact filenames
mypy.inipytest.inisetup.cfgtox.ini1 extension
.pri1 extension
.qml1 extension
.q1 extension
.qu1 extension
.r1 extension
.raml2 extensions
.cshtml.razor0 extensions • 11 exact filenames
.eslintrc.yaml.eslintrc.yml.markdownlint.yaml.markdownlint.yml.prettierrc.yaml.prettierrc.yml.stylelintrc.yaml.stylelintrc.yml.yamllint.yamllint.yaml.yamllint.yml0 extensions • 1 exact filename
.inputrc0 extensions • 4 exact filenames
readmereadme.mdreadme.rstreadme.txt1 extension
.readme1 extension
.rebol1 extension
.rego1 extension
.rnc1 extension
.rst3 extensions
.rex.rx.the1 extension
.rpg1 extension
.rpl1 extension
.spec0 extensions • 2 exact filenames
.rubocop.yml.rubocop_todo.yml33 extensions
.appfile.appraisals.berksfile.brewfile.capfile.cheffile.config.ru.deliverfile.fastfile.fcgi.gemfile.gemspec.guardfile.irbrc.jbuilder.podfile.podspec.pp.prawn.rabl.rake.rakefile.rantfile.rb.rbx.rjs.ruby.scanfile.simplecov.snapfile.thor.thorfile.vagrantfile1 extension
.rs0 extensions • 1 exact filename
.rustfmt.toml1 extension
.sage1 extension
.sas1 extension
.scss1 extension
.scala1 extension
.sbt2 extensions
.sce.sci0 extensions • 1 exact filename
.releaserc1 extension
.sam8 extensions
.bash.csh.ebuild.eclass.ksh.sh.tcsh.zsh0 extensions • 13 exact filenames
.bash_logout.bash_profile.bashrc.profile.psql_history.python_history.shellcheckrc.zprofile.zsh-theme.zsh-update.zsh_history.zshenv.zshrc0 extensions • 3 exact filenames
.bash_login.login.logout1 extension
.slim1 extension
.smali1 extension
.sma3 extensions
.gst.sq.st2 extensions
.mib.smi1 extension
.sno1 extension
.sol1 extension
.spn1 extension
.nut1 extension
.srt0 extensions • 3 exact filenames
authorized_keysconfigknown_hosts1 extension
.pub1 extension
.sml2 extensions
.ado.do1 extension
.acf1 extension
.styl1 extension
.scd1 extension
.xpp1 extension
.svelte1 extension
.svg0 extensions • 1 exact filename
.swcrc1 extension
.swift0 extensions • 1 exact filename
.swiftformat0 extensions • 2 exact filenames
.swiftlint.yaml.swiftlint.yml0 extensions
0 extensions • 2 exact filenames
taskfile.yamltaskfile.yml4 extensions
.itcl.tcl.tk.wish1 extension
.terminal2 extensions
.tf.tfvars0 extensions • 1 exact filename
.terraform.lock.hcl1 extension
.tfstate4 extensions
.cls.latex.sty.tex0 extensions • 1 exact filename
.tmux.conf1 extension
.toml1 extension
.tsql0 extensions • 1 exact filename
.travis.yml1 extension
.tsv1 extension
.tsx1 extension
.ttcn33 extensions
.cts.mts.ts.tsdotViewer ships TypeScript support, but Finder Quick Look usually routes .ts files to macOS as MPEG-2 transport stream video instead.
0 extensions • 4 exact filenames
jsconfig.jsontsconfig.app.jsontsconfig.build.jsontsconfig.json3 extensions
.cg.cginc.shader1 extension
.upc0 extensions • 1 exact filename
vagrantfile1 extension
.vala1 extension
.v0 extensions • 8 exact filenames
.go-version.java-version.node-version.nvmrc.python-version.ruby-gemset.ruby-version.tool-versions2 extensions
.vhd.vhdl0 extensions • 2 exact filenames
.viminfo.vimrc3 extensions
.gvimrc.vim.vimrc5 extensions
.bas.basic.bi.vb.vbs1 extension
.code-workspace1 extension
.vue0 extensions • 1 exact filename
.watchmanconfig1 extension
.wat0 extensions • 1 exact filename
.wgetrc1 extension
.wgsl1 extension
.whiley1 extension
.wdl1 extension
.wren1 extension
.wsdl0 extensions • 5 exact filenames
.xdefaults.xinitrc.xprofile.xresources.xsession1 extension
.xaml1 extension
.xcfilelist22 extensions
.csproj.dtd.ecf.ent.glade.hdr.hub.iml.jnlp.nrm.opml.plist.resx.rss.sgm.sgml.tld.vxml.wml.xml.xsd.xsl1 extension
.yaiff2 extensions
.yaml.yml1 extension
.yang1 extension
.zig1 extension
.znnThe free direct path is meant to feel familiar: download the DMG, drag to Applications, launch once, then use Quick Look in Finder. If you prefer store-managed installation, the paid App Store channel is available too.
Use the stable /download page and you always land on the current installer, checksum, and version history without hunting through release assets manually.
Install it like a normal Mac app. One app, one DMG, no account wall, and no chain of separate Quick Look add-ons.
The first launch registers the extension. After that, select a supported file in Finder and press Space to preview it.
CSV / TSV data, man pages, logs, extensionless executable scripts, plain text documents, and source code..gitignore and config files like JSON, YAML, XML, and INI?.gitignore, .env, .editorconfig, package.json, YAML, XML, plist, TSV, man pages, log files, extensionless executable scripts, and many other text-based formats.dotViewer is for the moments when you just need to inspect the file, understand what it is, and keep moving. Get the free direct DMG, or choose the App Store if you want the paid store-managed route instead.