Pulpo SVG

Using the editor: projects, paths, images, fonts, export and GitHub

What Pulpo SVG is

Pulpo SVG is an SVG editor for the phone that is built around a project folder, not a single file, and that treats files made in Inkscape as something to preserve rather than to convert.

The editor with a card open: title bar, tool bar, canvas and the bottom bar
The whole editor: title bar, tools, canvas, and the bar that opens every panel.

Two decisions explain most of how it behaves:

  • It is project-oriented. A card game, a set of icons or a booklet is many files sharing one base template, linked images, symbols, palettes and fonts. Pulpo mounts the folder that holds all of it, so relative links keep working instead of breaking the moment you open a file on your phone.
  • It preserves what it does not understand. When you save, only what you actually changed is rewritten. Layers, labels, node types, gradients and units survive the round trip, so a file can go to the phone and come back to Inkscape still being the same file.

It runs as an Android app, from Google Play.

Mount your project

This is the first thing to do, and the one that makes everything else work. Mounting grants the app access to one folder on your device — the app never goes looking outside it.

Home screen with Mount project folder and Open an SVG
The home screen. Mounting is the highlighted action for a reason.
  1. Open the app and press Mount project folder on the home screen.
  2. Pick the folder that contains your SVGs and everything they refer to.
  3. The app indexes it once and tells you how many items it found.

Choose the folder that is the root of the project, not the subfolder with the file you want right now. If a card in Exp1/Cards/ links an image in Art/, both have to be inside what you mounted for the link to resolve.

The folder permission is granted once and never asked about again, it survives restarting the phone, and files go out to other apps through the system share sheet.

Changed the folder from elsewhere? If you added or deleted files from a computer or another app while the project was mounted, open Project files and press the refresh button. The app keeps an index of the folder, and that is what re-reads it.

Finding your way around

There is a canvas, a title bar, and panels that slide over the canvas. The octopus icon takes you back to the home screen without closing anything; tap it again to return to your document.

Panels you will use most:

PanelWhat it is for
ObjectsThe tree of everything in the document, with Inkscape's own names. Visibility, locking, stacking order, grouping.
PropertiesNumbers for the selection: position, size, rotation, fill and stroke.
NodeThe exact coordinates of the selected node, typed rather than dragged.
ToolsPen, rectangle, ellipse, text, convert to path.
ProjectBrowse the mounted folder and open files from it.
LinksEvery linked image and SVG, and whether each one resolves.
FontsWhich fonts the file asks for, and which one is actually being used.
Export, SharePNG and JPEG, and handing a file to another app.
GitHubCommit, push and pull the mounted project.
AboutVersion, what changed lately, diagnostics, and the form for reporting a problem.

Documents and tabs

You can keep several documents open at once and copy between them — which is the point when you are laying out a series and want a piece from the previous card. Copy in one tab, switch, paste in the other.

Opening a file reuses an empty tab if there is one, so you do not end up with unnamed entries in the document list.

Free tier Two documents open at a time. Two, and not one, because copying from one card to the next is half the reason this editor exists. Unlimited tabs are part of Pro.

Objects and structure

The Objects panel is the document's tree, showing the labels Inkscape gave things rather than raw ids. From there you can:

Objects panel showing the document tree with its layers
The tree, with the layer names the file already had.
  • Hide , show and lock objects and layers.
  • Change stacking order ( ), group and ungroup , move something into another group.
  • Rename , duplicate and delete .
  • Copy and paste — including between documents.

On the canvas, tap to select. Tap again on overlapping objects to cycle through what is underneath. Drag on empty space for a rubber-band selection, and select several objects to transform or align them together.

Move, rotate, scale

A selected group with its handles and the contextual action bar
Selected: handles at the corners, the move handle on top, and the actions that apply.

Selected objects get handles: drag to move, drag a corner to scale, and use the rotation handle to turn. Rotation snaps every 45°, and moving snaps to guides when you get close.

When a drag is not precise enough, the Properties panel takes typed numbers in the document's own unit — millimetres if that is what the file uses. It also has align and distribute ( ) for several objects at once.

Paths and nodes

Node editing works on several paths at once, which matters when a shape is really three overlapping pieces.

  • Drag nodes and their handles; insert and delete nodes.
  • Set the node type — corner , smooth or symmetric — exactly as Inkscape means them.
  • Merge two nodes , split one , join with a straight segment , delete a segment .
  • Joining two nodes from different paths combines them into one path, like Inkscape does.

sodipodi:nodetypes stays in sync with what you do, so the file keeps describing its own curves honestly when it goes back to the desktop. Cutting a path separates it: whatever ends up loose becomes its own object, and orphan nodes are swept away.

For a node that has to land on an exact coordinate, the Node panel lets you type it.

Drawing new shapes

Tools panel, with the actions that apply to the selection lit up
Tools that do not apply to what is selected stay dim, instead of failing when pressed.

The Tools panel has the drawing tools. Magnetic snapping helps line new geometry up with what is already there.

Pen
Rectangle
Ellipse
Text
Image
To path
Select
Pan

A rectangle or an ellipse is still a shape, not a path. When you need to edit its nodes, use convert to path first — the same order of operations as on the desktop.

Fill, stroke, gradients

Fill and stroke are set from Properties. Gradients are edited directly on the canvas with handles you drag where you want the colour to go.

Pulpo respects Inkscape's two-level gradient model — the definition and the positioned use of it are kept separate — so a gradient shared by several objects stays shared instead of being silently duplicated.

Palettes

The Palettes panel keeps the colours of the project within reach. You can extract a palette from the artwork you already have, so the colours you are using become the colours you can pick.

Pro Importing .gpl palettes — the format Inkscape and GIMP use — and extracting a palette from a drawing.

Images and linked SVGs

When you place an image, Pulpo asks the question that matters:

  • Embed it — the image travels inside the SVG. Always available, makes the file bigger, and the copy inside stops following the original.
  • Link it — the SVG points at a file in the project folder. Keeps files small and lets one image serve many cards, but needs a mounted folder and a document saved inside it. Linking copies the image next to the document without overwriting anything already there.

Images come in at their own aspect ratio and real size, not stretched into a generic box.

The Links panel lists every linked image and SVG and tells you which ones resolve. From there you can view them, re-link a broken one, reload one that changed on disk, embed a linked file or extract an embedded one.

A base file shared by many documents Save a change to an SVG that other open documents link, and every one of them redraws immediately. Only that file is re-read; nothing else is reindexed and no unsaved work is touched.

Text and fonts

Text has family, size and content, edited in a single field even when it spans several lines.

Fonts are where a phone usually lies to you: it silently substitutes what it does not have and the layout quietly shifts. The Fonts panel says it out loud — which fonts the file asks for, which one is actually being used for each, and a button to adopt the substitute so the file states what it really uses.

The reliable fix is to put the real font files in the project folder; they are then found the same way linked images are.

Pro Browsing Google Fonts and using them in your text.

Symbols

Symbols are your library of reusable pieces for the project: a frame, a mana icon, a rarity badge. Insert one many times instead of copying it many times.

Pro Creating symbols.

Effects

Effects act on images in the document. Beyond the ones that ship with the app you can write your own — the format is documented in the project's docs/EFFECTS.md. Drop an effect file into the project folder, refresh, and it appears alongside the built-in ones.

Pro Effects, including your own.

Export and share

Export panel with format, dpi and size
Choose dpi and physical size; the destination defaults to the folder of the open SVG.

Export image writes PNG or JPEG at the dpi and physical size you choose, defaulting to the folder of the SVG you are working on. Fonts and linked SVGs are baked into the image, so what you export is what you saw.

Share hands the file to any other app through the system picker — messaging, cloud storage, a printer.

Saving, opening and sharing SVG files is free, always. Your work never stops being an ordinary SVG file on your own device.

Pro Exporting and sharing PNG and JPEG.

GitHubPro

The GitHub panel links the mounted folder to a repository you already own, and lets you review changes, commit, push and pull from the phone.

The folder has to be a clone already Pulpo does not publish a new project to GitHub. It joins a repository you already have: clone it on the device — with Termux, or by copying a clone across — and mount that folder. The repository and the branch are then read from its .git; you do not pick them, so a project can never be linked to an unrelated repository and overwrite it.
GitHub panel asking for a fine-grained access token
Connecting: a token you create yourself, pasted once.

Connecting

  1. Mount the folder that is the clone.
  2. In the GitHub panel, press Create token on GitHub. Your browser opens.
  3. Sign in and make sure Fine-grained tokens is selected. Press Generate new token.
  4. Name it something like “Pulpo SVG” and pick an expiry date.
  5. Under Repository access, choose only the repositories Pulpo may touch.
  6. Under Permissions, grant Contents: Read and write. Metadata is added automatically.
  7. Generate the token, copy it, paste it into the app and press Connect GitHub.

The panel then names the repository and branch it read from the folder, and all that is left is to press Link project. Linking downloads nothing and overwrites nothing. If the folder is not a clone, is on a branch other than the one linked, or has a detached HEAD, the panel says so and does nothing — and it checks again before every commit, push and pull, because a folder can be moved to another branch from a terminal at any time.

Working

Changes lists what differs from the last commit. Tick what belongs in this commit, write a message, and press Commit — that creates the commit but does not publish it. Push publishes it, and refuses if GitHub moved in the meantime so nothing is overwritten by accident. Pull brings changes down, saving a backup before writing anything, and asks you to pick a side for any file that changed in both places.

A console shows what each operation is doing, file by file, and how it ended.

It keeps the folder's own Git up to date

Pulpo talks to GitHub's API rather than running Git, but after every push and pull it also updates the .git inside your folder: the objects, the branch and the index. So git status in a terminal on the same folder comes out clean, instead of insisting that everything you already published is still modified.

It only ever fast-forwards by one commit, and it steps aside — telling you why — if your local Git has work of its own, is on another branch, or has anything else it should not resolve on your behalf. A push or a pull is never made to fail by this.

What “Changes” compares against Against the last commit of your folder, read from its .git — not against the tip of the remote. So a file someone deleted on another machine does not show up here as something of yours to commit; it arrives with the next Pull. If the folder is moved from a terminal, the app notices and re-reads its baseline.
Deleted files are not ticked by default Re-ticking a deletion you meant costs one tap; a deletion you did not mean costs files in the repository.

Undo and recovery

  • History. Steps are recorded as reversible changes, so you can walk back.
  • Automatic copy. Unsaved work is copied aside every few seconds. If the app is closed unexpectedly, it offers the work back the next time it opens.
  • Explicit saving. Writing to your folder happens when you ask for it, or when you turn on automatic saving to disk.

One thing worth knowing about GitHub: it only ever sees what is written to the folder. If a document has unsaved changes, the panel says so and offers to save everything before you commit.

Free and Pro

The free version is a real editor: open, edit and save your SVG files, with no watermark and no time limit, with up to two documents open at once.

Pulpo SVG Pro is a single payment, not a subscription, and adds:

  • Unlimited documents open at once
  • Exporting and sharing PNG and JPEG
  • Symbols: your own library of reusable pieces
  • Effects on images, including ones you write
  • Imported .gpl palettes and palettes extracted from your artwork
  • Google Fonts
  • GitHub for mounted projects

It is tied to your Google account, so you get it back when you reinstall or change phones.

When something looks wrong

A linked image does not appear

Open Links: it will tell you whether the path resolves. The usual cause is that the image lives outside the folder you mounted — mount the parent folder instead. If the file moved, re-link it from that same panel.

The text looks different from the desktop

Open Fonts. It names the font the file asks for and the one being used instead. Copy the real font file into the project folder, refresh, and it will be found; or adopt the substitute so the file says what it actually uses.

Files I changed from a computer are not showing

The folder index is built when you mount. Refresh from Project files after changing things from outside the app.

“This kind of mount cannot be linked to GitHub”

GitHub needs a folder with a lasting identity — a mounted folder, not a single file opened on its own.

Something else

About → Support has a form for reporting a bug or asking for a feature. It sends the description, the version, and your email only if you tick the box. Your document is never attached. The same panel has a diagnostics screen that measures what your device actually allows, which is the first thing worth checking when mounting a folder misbehaves.