Skip to main content

Portacode

License: PolyForm Shield

One prompt. The whole software lifecycle.

Portacode is an AI software builder and operator. Describe the outcome you want and its AI can provision a real computer, build the frontend and backend, test the application in a browser, deploy it, monitor it, and help repair failures. No coding or server setup is required to start.

Unlike builders that stop at a preview or exported repository, Portacode gives you the complete working system: source, data, services, containers, configuration, and runtime. Start on Portacode-hosted infrastructure, or connect your own machine when you want to. The result remains portable either way.

Start building · Deployment templates · Android app · Report an issue

From Idea to Running Software

Portacode's AI can carry work across the application lifecycle:

  • Build: provision a clean workspace and create the application, backend, database, authentication, storage, dependencies, and services your project needs.
  • Test: run builds and tests, open the real application in a browser, inspect results, and capture screenshots.
  • Deploy: expose services through HTTPS and custom domains, using reusable workflows or a stack assembled for your project.
  • Operate: inspect files, Git, terminals, processes, services, and resource usage; receive runtime alerts and completion notifications.
  • Fix: return build, test, or deployment failures to the AI so it can investigate, change the system, and try again.
  • Move: transfer the project and its working environment between Portacode-hosted and user-controlled machines.

Start Simple. Go as Deep as You Want.

You can begin with an ordinary-language request and let Portacode choose the environment and handle the engineering. If you want more control later, the real files, Git repository, terminal, browser, processes, services, and infrastructure remain available. There is no approved-stack list: if a language, framework, database, or binary runs on the underlying Linux machine, it can be part of the project.

Portacode itself is mobile-first. Direct the AI, inspect files and diffs, use terminals, deploy services, monitor machines, and respond to alerts from a phone, tablet, or desktop. This is separate from the kind of application you build: Portacode can work with whichever web, desktop, or mobile stack the project requires.

Own the Working System

Ownership in Portacode means more than downloading a code repository. Source, application data, containers, services, and configuration remain ordinary assets on a real machine. Use Portacode-hosted capacity for a zero-setup start, connect a computer or VPS you already have, or provision against supported self-hosted infrastructure. Back up or move the complete project when your needs change.

AI access remains controllable and reviewable. Inspect project state and line-by-line diffs, grant access only to selected devices or repositories, and decide what the agent may change.

Start Building

Start at portacode.com, describe the outcome you want, and let Portacode prepare the workspace. You do not need to install this package or supply a server first.

The rest of this README documents the optional device agent for bringing an existing machine into Portacode.

Connect Your Own Machine

Portacode's Python package is the device-side CLI and agent. It connects an existing Linux/Python-capable machine to your Portacode account so the web workspace can work with its projects and developer tools.

  1. Sign in to Portacode and select Pair Device.
  2. Run the activation command shown there on the target machine. It installs Portacode in a dedicated virtual environment, pairs the device, and configures its persistent service.
  3. Approve the pairing request in the dashboard.

The command has this form; use the short-lived code displayed in your own dashboard:

curl -fsSL https://portacode.com/static/activate_portacode.sh \
  | bash -s -- --pairing-code YOUR_CODE

Review the downloaded script before running it if that is required by your environment. See the pairing guide for supported distributions, a fully manual installation, and Proxmox-specific setup.

Manual CLI setup

If you already have a suitable Python environment:

python -m pip install --upgrade portacode
portacode connect --pairing-code YOUR_CODE \
  --device-name "My Linux Device" \
  --project-path /absolute/path/to/project

Approve the request in the dashboard. The device stores its identity locally and reuses it for later connections. For an always-on connection, install the supervised service after pairing:

portacode service install
portacode service status

Follow the service logs live (press Ctrl+C to detach without stopping the service):

portacode service logs
portacode service logs --level warning --categories connection,auth
portacode service logs --no-follow --lines 100

The default shows the latest 50 entries at info level or higher and continues following new output. Use portacode service logs --categories list to see the available category filters. Filters only affect displayed records; a running service cannot expose debug messages that it was not configured to emit.

System-wide service installation may require elevated privileges. Run portacode --help, portacode connect --help, or portacode service --help for the options supported by the installed version.

Automation and Deployments

A portafile.yaml can describe a repeatable workflow for a new disposable environment or an existing device. Depending on the workflow, it can select a base environment, request resources, create project paths, collect inputs, run ordered build/test/deploy steps, expose services, and define success or failure behavior.

This keeps automation portable and reviewable alongside the project while Portacode handles orchestration and status reporting. The schema is intentionally documented on the live site because it gains capabilities more frequently than the CLI README changes.

See the CI/CD and portafile.yaml reference or browse one-click deployment templates.

Your Infrastructure

Existing Linux machines can be paired directly. For self-hosted provisioning, a supported Proxmox node can become Portacode infrastructure, allowing projects and automation to create isolated environments against the capacity you control. Services can be connected to custom domains through the supported Cloudflare Tunnel flow.

Security and Control

Each paired device has its own cryptographic identity. The private key is stored on the device, connections are encrypted in transit, and access can be revoked from Portacode. Pairing codes are short-lived and a new device still requires approval in the dashboard.

AI work is designed around visible project state and reviewable diffs. As with any remote administration or coding-agent tool, connect only machines and project paths you intend Portacode to access, review proposed changes, and use appropriate operating-system permissions and backups.

Identity Storage and Containers

The CLI uses the operating system's application-data directory (through platformdirs) and stores its device identity under portacode/keys/. Typical locations are:

  • Linux: ~/.local/share/portacode/keys/
  • macOS: ~/Library/Application Support/portacode/keys/
  • Windows: %APPDATA%\portacode\keys\

When running the CLI in a container, persist the relevant application-data directory so the container retains its device identity across rebuilds. The examples demonstrate the pattern:

Guides

Contributing and Support

Bug reports, focused fixes, and documentation improvements are welcome. Open an issue or a pull request in this repository.

For product support, email support@portacode.com.

License

Portacode's device-side client is available under the PolyForm Shield License 1.0.0. You may view, modify, self-host, and use it for non-competing purposes. You may not use it to build or offer a competing product or service.

Third-party components remain under their own licenses. See their accompanying notices and license files where provided.

Metadata

Release files for portacode 2.2.27

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for portacode 2.2.27
File Size Uploaded
portacode-2.2.27.tar.gz 612.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for portacode 2.2.27
File Interpreter ABI Platform
portacode-2.2.27-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / portacode-2.2.27.tar.gz

Download URL portacode-2.2.27.tar.gz
Size 612.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0fe431cb5624428c1451f3838bcc93124698aa01d3aac1770070b56307bcc139
BLAKE2b-256 checksum
How to use checksums
13946ddc385560818f62549f30644aa3506c9df0ec4ca1af7c9af111b1af64c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.13

Release files / portacode-2.2.27-py3-none-any.whl

Download URL portacode-2.2.27-py3-none-any.whl
Size 510.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e96ab97003f1d43b29260cde02377a5d05661dd9b390ae2f634611176de2236e
BLAKE2b-256 checksum
How to use checksums
6dc5e7878f4b953b0f252a206a267cf42a6968ade20250460f4acc8089b7f158
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.13

Release history Release notifications | RSS feed

This release

2.2.27 This release

2 release files

2.2.26

2 release files

2.2.25

2 release files

2.2.24

2 release files

2.2.23

2 release files

2.2.22

2 release files

2.2.21

2 release files

2.2.20

2 release files

2.2.19

2 release files

2.2.18

2 release files

2.2.17

2 release files

2.2.16

2 release files

2.2.15

2 release files

2.2.14

2 release files

2.2.13

2 release files

2.2.12

2 release files

2.2.11

2 release files

2.2.10

2 release files

2.2.9

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.6

2 release files

2.2.5

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.5.33

2 release files

1.5.32

2 release files

1.5.31

2 release files

1.5.30

2 release files

1.5.19

2 release files

1.5.18

2 release files

1.5.17

2 release files

1.5.16

2 release files

1.5.15

2 release files

1.5.14

2 release files

1.5.13

2 release files

1.5.12

2 release files

1.5.11

2 release files

1.5.10

2 release files

1.5.9

2 release files

1.5.8

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.47

2 release files

1.4.46

2 release files

1.4.45

2 release files

1.4.44

2 release files

1.4.43

2 release files

1.4.42

2 release files

1.4.41

2 release files

1.4.40

2 release files

1.4.39

2 release files

1.4.38

2 release files

1.4.35

2 release files

1.4.34

2 release files

1.4.33

2 release files

1.4.32

2 release files

1.4.31

2 release files

1.4.30

2 release files

1.4.29

2 release files

1.4.28

2 release files

1.4.27

2 release files

1.4.26

2 release files

1.4.25

2 release files

1.4.18

2 release files

1.4.17

2 release files

1.4.16

2 release files

1.4.15

2 release files

1.4.14

2 release files

1.4.12

2 release files

1.4.11

2 release files

1.4.10

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.41

2 release files

1.3.40

2 release files

1.3.39

2 release files

1.3.38

2 release files

1.3.37

2 release files

1.3.36

2 release files

1.3.35

2 release files

1.3.34

2 release files

1.3.33

2 release files

1.3.32

2 release files

1.3.31

2 release files

1.3.30

2 release files

1.3.26

2 release files

1.3.25

2 release files

0.3.25

2 release files

0.3.24

2 release files

0.3.23

2 release files

0.3.22

2 release files

0.3.21

2 release files

0.3.16

2 release files

0.3.15

2 release files

0.3.14

2 release files

0.3.13

2 release files

0.3.10

2 release files

0.3.9

2 release files

0.3.2

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page