/docs/Development/Ignoring Files
back to app →

Ignoring files

Not every file in your func folder belongs to the func. Editor settings, virtual environments, caches, and scratch notes are local clutter — they shouldn't sync to the sandbox, fill up the IDE file tree, or end up in a published version. An .artifuncsignore file, placed at the root of your func, controls exactly which files are part of the func and which are skipped.

It uses the same syntax as .gitignore, so if you've written one of those, you already know how this works.

What it affects

A path matched by your ignore rules is excluded everywhere a func's files are handled:

  • It never syncs to the sandbox — whether through live editing or the artifuncs CLI (dev / push).
  • It never appears in the Web IDE file explorer.
  • It's never committed to your draft, so it's never reviewed or published.

Because ignored files don't count toward your published version, they also help you stay under the review limits (≤ 100 files, ≤ 1 MB each).

Built-in defaults

These patterns are always ignored, even if you don't have an .artifuncsignore file at all. They cover the usual build and tooling artefacts:

PatternWhat it is
.git/Git metadata
.venv/, venv/Python virtual environments
node_modules/npm / pnpm packages
__pycache__/, *.pycPython bytecode caches
.DS_StoremacOS folder metadata
.idea/, .vscode/JetBrains / VS Code settings
files/the per-session runtime I/O directory (see Files)
.artifuncs/local CLI state

Dependencies are reinstalled from your manifest on the sandbox, so there's no reason to sync node_modules/ or a virtualenv — that's why they're ignored by default. Declare deps in requirements.txt / package.json instead (see Dependencies).

Adding your own rules

Create a file named .artifuncsignore at the root of your func and list one pattern per line:

text
# scratch files I don't want in the func
scratch/
*.log
TODO.txt

Standard gitignore syntax applies, matched relative to the func root:

  • dir/ — ignore a whole directory.
  • *.log — glob by extension.
  • /secret.txt — a leading slash anchors the pattern to the func root.
  • # — a comment line.

Re-including a file

Prefix a pattern with ! to negate it — keep a file that an earlier rule would otherwise hide. A later rule wins over an earlier one, just like in .gitignore:

text
# ignore all CSVs except the seed data the func needs at runtime
*.csv
!seed.csv

You can negate a built-in default the same way (for example !.vscode/ to let editor config travel with the func), though you'll rarely need to.